Python Glossary English

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Сообщить о неточности