Встречается на собеседованиях • сегодня
Может ли одна корутина отдать управление другой корутине
В Python корутины не могут напрямую передавать управление друг другу. Управление корутинами осуществляется через event loop, который решает, какую корутину запускать или возобновлять.
Однако, корутина может явно попросить event loop переключиться на другую корутину с помощью await или asyncio.sleep(0).
Пример:
python
import asyncio
async def coro1():
print("Coro 1 started")
await asyncio.sleep(0) # Отдаём управление event loop
print("Coro 1 resumed")
async def coro2():
print("Coro 2 started")
await asyncio.sleep(0)
print("Coro 2 resumed")
async def main():
await asyncio.gather(coro1(), coro2())
asyncio.run(main())Вывод:
text
Coro 1 started
Coro 2 started
Coro 1 resumed
Coro 2 resumed Таким образом, корутины не управляют друг другом напрямую, но могут "подсказать" event loop, когда стоит переключиться.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы