Встречается на 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
интервью вопросы и ответы