Встречается на 1% собеседований по Python
Какие плюсы и минусы кооперативной многозадачности
Плюсы:
- Легковесность: переключение между задачами происходит быстро, так как управляется на уровне кода, а не ОС.
- Детерминированность: разработчик сам контролирует переключение задач, что упрощает отладку.
- Эффективность: нет накладных расходов на системные вызовы или переключение контекста.
Минусы:
- Блокирующие операции могут заморозить всю систему, если задача не отдает управление.
- Сложность масштабирования: при большом количестве задач управление ими становится трудным.
- Отсутствие параллелизма: задачи выполняются строго по одной, что ограничивает использование многоядерных процессоров.
Пример с asyncio:
python
import asyncio
async def task1():
print("Task 1 started")
await asyncio.sleep(1)
print("Task 1 finished")
async def task2():
print("Task 2 started")
await asyncio.sleep(2)
print("Task 2 finished")
async def main():
await asyncio.gather(task1(), task2())
asyncio.run(main())Здесь задачи task1 и task2 выполняются кооперативно, переключаясь на await.

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