Python 3.4+Асинхронное программированиефункция
asyncio.new_event_loop()
event loop
Создаёт новый цикл событий. Не делает его текущим и не закрывает сам — обычно вместо неё берут asyncio.run() или asyncio.Runner.
Синтаксис
loop = asyncio.new_event_loop()
Созданный цикл живёт, пока его не закрыть: без loop.close() остаются открытые дескрипторы и ResourceWarning. Он не становится текущим, поэтому get_event_loop() его не увидит без set_event_loop(). asyncio.run() делает всё это сам: создаёт, запускает, дожидается асинхронных генераторов, гасит пул потоков и закрывает цикл. Ручной цикл нужен, например, в отдельном потоке с долгоживущим циклом.
Примеры
import asyncio
async def main():
await asyncio.sleep(0.01)
return 'готово'
loop = asyncio.new_event_loop()
try:
print(loop.run_until_complete(main())) # → готово
finally:
loop.close() # закрыть обязательно
print(loop.is_closed()) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности