Junior — Middle
100
Peut-on exécuter plusieurs boucles d'événements dans un seul thread Python et comment le faire ?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
В 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 можно запускать корутины из другого потока