Встречается на собеседованиях • сегодня
Зачем нужна кооперативная многозадачность в 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 сек)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы