Junior — Middle
86
Може ли у једном Python току покренути више циклуса догађаја и како то реализовати?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
В Python стандартная библиотека asyncio не поддерживает запуск нескольких циклов событий (event loops) в одном потоке одновременно. Каждый поток может иметь только один активный цикл событий.
Если нужно работать с несколькими циклами событий, обычно создают отдельные потоки или процессы для каждого цикла. В одном потоке можно запустить только один цикл событий.
Пример запуска цикла событий в отдельном потоке:
import asyncio
import threading
def start_loop(loop):
asyncio.set_event_loop(loop)
loop.run_forever()
new_loop = asyncio.new_event_loop()
threading.Thread(target=start_loop, args=(new_loop,)).start()
# Теперь в new_loop можно запускать корутины из другого потока