Встречается на собеседованиях • сегодня
Какие плюсы и минусы кооперативной многозадачности
Плюсы:
- Легковесность: переключение между задачами происходит быстро, так как управляется на уровне кода, а не ОС.
- Детерминированность: разработчик сам контролирует переключение задач, что упрощает отладку.
- Эффективность: нет накладных расходов на системные вызовы или переключение контекста.
Минусы:
- Блокирующие операции могут заморозить всю систему, если задача не отдает управление.
- Сложность масштабирования: при большом количестве задач управление ими становится трудным.
- Отсутствие параллелизма: задачи выполняются строго по одной, что ограничивает использование многоядерных процессоров.
Пример с 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
интервью вопросы и ответы