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

Кто следит за тем, чтобы потоки работали в Python

В Python за управление потоками (threads) отвечает Global Interpreter Lock (GIL) — механизм, который позволяет выполняться только одному потоку за раз в рамках одного процесса интерпретатора. Это предотвращает конкурентное выполнение байт-кода, упрощая работу с памятью, но ограничивает параллелизм для CPU-задач.

Однако GIL не блокирует потоки полностью:

  • I/O-операции (сеть, файлы) освобождают GIL, позволяя другим потокам работать.
  • Для CPU-задач можно использовать multiprocessing или внешние библиотеки (например, numpy/Cython), которые выносят вычисления за пределы GIL.

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

python
import threading

def worker():
    print("Поток работает")

threads = []
for _ in range(5):
    t = threading.Thread(target=worker)
    threads.append(t)
    t.start()

for t in threads:
    t.join()

Здесь GIL гарантирует, что только один поток выполняется в любой момент, но планировщик ОС может переключать их. Для истинного параллелизма используйте multiprocessing.

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

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

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

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