我对asyncnotifier的工作原理感到困惑。通知器中的线程究竟是什么?只是观察者线程?或者处理程序函数的每个回调是否都在自己的线程上运行?
文档基本上没有说明课程的细节。
答案 0 :(得分:3)
AsyncNotifier不使用线程,它使用asynchronous socket handler循环。
如果您正在谈论ThreadedNotifier,那么每个回调似乎都会在同一个帖子每个通知程序中调用。
这意味着即使您在某些EventHandlers
注册了多个WatchManager
,它们也会从同一个帖子发出回调。
我无法找到明确记录的位置,但似乎隐含了ThreadedNotifier.loop()
方法的生成文档,其中包含:
事件每隔一分钟只读取一次(read_freq,timeout)秒,并且只有当要读取的事件大小为> =阈值时才会读取。
...我认为它在单个线程中作为一个相当简单的循环运行,从该循环发出回调。
我通过简单地在回调中打印threading.current_thread()
的结果进行了实验,并验证了这一点。
(如果您认为有必要,可以随时提交issue来请求更具体的文档。)