pyinotify asyncnotifier线程问题

时间:2010-10-17 22:22:31

标签: python multithreading pyinotify

我对asyncnotifier的工作原理感到困惑。通知器中的线程究竟是什么?只是观察者线程?或者处理程序函数的每个回调是否都在自己的线程上运行?

文档基本上没有说明课程的细节。

1 个答案:

答案 0 :(得分:3)

AsyncNotifier不使用线程,它使用asynchronous socket handler循环。

如果您正在谈论ThreadedNotifier,那么每个回调似乎都会在同一个帖子每个通知程序中调用。

这意味着即使您在某些EventHandlers注册了多个WatchManager,它们也会从同一个帖子发出回调。

我无法找到明确记录的位置,但似乎隐含了ThreadedNotifier.loop()方法的生成文档,其中包含:

  

事件每隔一分钟只读取一次(read_freq,timeout)秒,并且只有当要读取的事件大小为> =阈值时才会读取。

...我认为它在单个线程中作为一个相当简单的循环运行,从该循环发出回调。

我通过简单地在回调中打印threading.current_thread()的结果进行了实验,并验证了这一点。

(如果您认为有必要,可以随时提交issue来请求更具体的文档。)