Встречается на 2% собеседований по Python

Как переключаются потоки в Python

В Python потоки переключаются автоматически благодаря механизму GIL (Global Interpreter Lock). GIL позволяет выполняться только одному потоку за раз, но переключение между потоками происходит через определенные интервалы (ticks) или при блокирующих операциях (I/O, sleep и т.д.).

Пример переключения:

python
import threading
import time

def worker():
    print("Поток начал работу")
    time.sleep(1)  # Здесь произойдет переключение на другой поток
    print("Поток завершил работу")

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

for t in threads:
    t.join()

Ключевые моменты:

  • Переключение происходит автоматически
  • GIL не дает выполняться нескольким потокам одновременно
  • Эффективность потоков ограничена для CPU-bound задач
  • Для истинного параллелизма лучше использовать multiprocessing

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

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

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