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

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

Принцип кооперативной многозадачности — это подход, при котором задачи добровольно передают управление другим задачам, а не вытесняются принудительно (как в вытесняющей многозадачности). В Python это реализуется через механизм yield в генераторах или async/await в асинхронном коде.

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

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:
    for task in tasks[:]:
        try:
            next(task)
        except StopIteration:
            tasks.remove(task)

Преимущества:

  • Проще управлять состоянием
  • Нет накладных расходов на переключение контекста

Недостатки:

  • Одна зависшая задача может заблокировать всю систему
  • Требует явной передачи управления
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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