代码之家  ›  专栏  ›  技术社区  ›  Falmarri

pyinotify asyncNotifier线程问题

  •  1
  • Falmarri  · 技术社区  · 15 年前

    我对AsyncNotifier的工作方式感到困惑。通知程序中到底有什么线程?只是监视线程吗?或者对处理程序函数的每个回调都在自己的线程上运行?

    文档基本上没有提到类的细节。

    1 回复  |  直到 15 年前
        1
  •  3
  •   detly    15 年前

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

    如果你说的是 ThreadedNotifier ,则每个回调似乎是在同一线程中调用的。 通知人 .

    这意味着即使你有几个 EventHandlers 注册了一些 WatchManager ,它们都将从同一线程发出回调。

    我找不到这是在哪里显式记录的,但似乎是从生成的文档中隐式的 ThreadedNotifier.loop() 方法,上面写着:

    事件最多每分钟(读取频率、超时)只读取一次,仅当要读取的事件大小为>=阈值时才读取。

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

    我尝试简单地打印 threading.current_thread() 在回调中,它验证了这一点。

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

    推荐文章