Встречается на собеседованиях • сегодня
Что кооперируется в кооперативной многозадачности
В кооперативной многозадачности ответственность за переключение между задачами лежит на самих задачах (корутинах). В отличие от вытесняющей многозадачности, где ОС принудительно переключает контекст, здесь каждая задача должна явно передавать управление следующей.
Ключевые аспекты:
- Задачи добровольно уступают контроль через
yieldилиawait - Нет принудительного прерывания выполнения
- Легковесность по сравнению с потоками
- Используется в asyncio, генераторах, green threads
Пример с генератором:
python
def task1():
for i in range(3):
print("Task 1")
yield
def task2():
for i in range(3):
print("Task 2")
yield
tasks = [task1(), task2()]
while tasks:
current = tasks.pop(0)
try:
next(current)
tasks.append(current)
except StopIteration:
passОсновной недостаток - если задача не отдает управление, вся система "зависает".

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