Встречается на 1% собеседований по Python
Есть ли очередность в асинхронности
В асинхронном программировании на Python порядок выполнения задач не гарантируется строго - он зависит от готовности корутин и работы event loop. Однако можно управлять очередностью с помощью await и специальных методов.
Пример с недетерминированным порядком:
python
import asyncio
async def task(num):
print(f"Start {num}")
await asyncio.sleep(0)
print(f"End {num}")
async def main():
await asyncio.gather(task(1), task(2), task(3))
asyncio.run(main())
text
Вывод может быть разным:Start 1
Start 2
Start 3
End 1
End 2
End 3
text
Для контроля порядка можно:
1. Использовать последовательные `await`
2. Применять `asyncio.create_task()` с явным ожиданием
3. Использовать приоритеты через `loop.call_soon()`
Event loop обрабатывает готовые задачи в порядке их готовности, а не создания.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы