Встречается на собеседованиях • сегодня

Что такое кооперативная многозадачность

Кооперативная многозадачность — это подход, при котором процессы добровольно отдают управление другим процессам. В отличие от вытесняющей многозадачности, где ОС принудительно переключает контекст, здесь переключение происходит только когда текущий процесс явно передаёт управление (например, через yield).

Пример в Python с генераторами:

python
def task1():
    for i in range(3):
        print("Task 1:", i)
        yield

def task2():
    for i in range(3):
        print("Task 2:", i)
        yield

tasks = [task1(), task2()]
while tasks:
    current = tasks.pop(0)
    try:
        next(current)
        tasks.append(current)
    except StopIteration:
        pass

Плюсы:

  • Проще реализация
  • Меньше накладных расходов

Минусы:

  • Один зависший процесс блокирует всю систему
  • Требует дисциплины от разработчиков

В Python кооперативная многозадачность часто реализуется через корутины (asyncio).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы