Встречается на собеседованиях • сегодня
В чем разница между кооперативной и вытесняющей многозадачностью в Python
В Python используется кооперативная многозадачность (через asyncio), где задачи добровольно передают управление, и вытесняющая (через потоки), где ОС решает, когда переключаться.
Кооперативная (asyncio):
- Задачи явно передают управление через
await - Легковесные, нет накладных расходов на переключение
- Одна блокирующая задача может заморозить весь цикл событий
python
async def task():
await asyncio.sleep(1) # Явная передача управленияВытесняющая (потоки):
- ОС сама переключает потоки
- Потоки могут выполняться параллельно на разных ядрах
- Есть накладные расходы на переключение контекста
- Риск race conditions (нуются блокировки)
python
from threading import Thread
def task():
time.sleep(1) # ОС может переключиться в любой моментГлобальная блокировка интерпретатора (GIL) ограничивает параллелизм потоков для CPU-bound задач. Для IO-bound задач оба подхода работают, но asyncio эффективнее.

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