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

Как переключаются потоки в 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
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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