Встречается на собеседованиях • сегодня

Можно ли выполнять 2 потока параллельно в Python

В Python из-за Global Interpreter Lock (GIL) настоящая параллельность потоков невозможна для CPU-задач. Однако для I/O-bound операций потоки могут работать эффективно, так как GIL освобождается во время ожидания ввода-вывода.

Для CPU-bound задач лучше использовать модуль multiprocessing, который создает отдельные процессы с собственным GIL.

Пример с потоками:

python
import threading
import time

def task(name):
    print(f"Поток {name} начал работу")
    time.sleep(2)
    print(f"Поток {name} завершил работу")

t1 = threading.Thread(target=task, args=("A",))
t2 = threading.Thread(target=task, args=("B",))

t1.start()
t2.start()

t1.join()
t2.join()

Хотя потоки запускаются параллельно, GIL переключается между ними, что создает иллюзию параллельности. Для настоящей параллельности CPU-задач используйте multiprocessing.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы