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

Есть ли очередность в асинхронности

В асинхронном программировании на 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 обрабатывает готовые задачи в порядке их готовности, а не создания.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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