Я читал много примеров, сообщений в блогах, вопросов/ответов об asyncio
/async
/await
в Python 3. 5+, многие из них были сложными, простейшее, что я нашел, вероятно, было таким. Тем не менее он использует ensure_future
и для обучения асинхронному программированию в Python, я хотел бы увидеть, возможен ли еще более минимальный пример (т.е. Какие минимальные инструменты необходимы для выполнения базового примера async/await).
Вопрос: для целей обучения асинхронному программированию в Python можно привести простой пример, показывающий, как работает async
/await
, используя только эти два ключевых слова + asyncio.get_event_loop()
+ run_until_complete
+ другой код Python, но никаких других функций asyncio
?
Пример: что-то вроде этого:
import asyncio
async def async_foo():
print("async_foo started")
await asyncio.sleep(5)
print("async_foo done")
async def main():
asyncio.ensure_future(async_foo()) # fire and forget async_foo()
print('Do some actions 1')
await asyncio.sleep(5)
print('Do some actions 2')
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
но без ensure_future
и все еще демонстрирует, как работает await/async.