Встречается на собеседованиях • сегодня
Как переключается контекст в multithreading (многопоточности)
В Python переключение контекста между потоками управляется GIL (Global Interpreter Lock). GIL позволяет выполняться только одному потоку за раз, даже на многоядерных системах.
Переключение происходит:
- По истечению кванта времени (обычно 5 мс)
- При операциях I/O (чтение/запись, сетевые запросы)
- При явном вызове
time.sleep()
Пример:
python
import threading
def worker():
print("Поток начал работу")
# Здесь может произойти переключение контекста
print("Поток завершил работу")
t1 = threading.Thread(target=worker)
t2 = threading.Thread(target=worker)
t1.start()
t2.start()Из-за GIL настоящий параллелизм достигается только в мультипроцессинге (multiprocessing). Для CPU-bound задач лучше использовать процессы, для I/O-bound — потоки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы