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

Зачем нужна кооперативная многозадачность в Python

В Python используется кооперативная многозадачность (например, через asyncio), потому что GIL (Global Interpreter Lock) ограничивает параллельное выполнение потоков. Вместо принудительного переключения между задачами (как в преemptive), корутины добровольно отдают управление в точках await, что позволяет эффективно работать с I/O-bound задачами без накладных расходов на переключение контекста.

Пример:

python
import asyncio

async def task(name, delay):
    print(f"{name} started")
    await asyncio.sleep(delay)  # Точка переключения
    print(f"{name} finished")

async def main():
    await asyncio.gather(
        task("A", 2),
        task("B", 1),
    )

asyncio.run(main())

Вывод:

text
A started
B started
B finished (через 1 сек)
A finished (через 2 сек)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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