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