是否有一些编程模式可以让我在以下意义上检测异步事件循环何时变为空闲?假设我的执行路径以某种复杂的方式分支,比如使用 asyncio.gather(),但我知道每个分支最终都会等待一些空闲的协程,例如套接字或子进程。假设我知道这些协程实际上永远不会让步,因此事件循环将执行它可以执行的任何 Python 代码,但最终只会等待那些空闲的协程。是否有一种编程方式来检测这种状态并停止循环?
我使用的是uvloop与websockets作为
import uvloop
coro = websockets.serve(handler, host, port) # creates new server
loop = uvloop.new_event_loop()
loop.create_task(coro)
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)
一切正常,我只是想知道如果不将全局asyncio政策设置为,是否可以遇到一些意想不到的问题uvloop。据我了解,只要不使用全局asyncio方法,只要不使用全局方法,就可以设置全局策略,而直接使用传递的事件循环。那是对的吗?