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

Как переключаются корутины в asyncio

Корутины в asyncio переключаются через механизм событийного цикла (event loop). Когда корутина достигает точки ожидания (например, await), она приостанавливается, и управление передаётся обратно в event loop, который решает, какую следующую корутину запустить.

Пример:

python
import asyncio

async def task1():
    print("Task 1 started")
    await asyncio.sleep(1)
    print("Task 1 finished")

async def task2():
    print("Task 2 started")
    await asyncio.sleep(2)
    print("Task 2 finished")

async def main():
    await asyncio.gather(task1(), task2())

asyncio.run(main())

Здесь await asyncio.sleep() передаёт управление обратно в event loop, позволяя выполняться другим корутинам. Event loop отслеживает состояние всех корутин и переключает контекст при необходимости.

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

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

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

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