1

我对 asyncnotifier 的工作方式感到困惑。通知程序中到底包含了什么?只是观察者线程?还是每个处理函数的回调都在自己的线程上运行?

该文档基本上没有说明该类的细节。

4

1 回答 1

3

AsyncNotifier使用线程,它使用异步套接字处理程序循环。

如果您在谈论ThreadedNotifier,那么每个回调似乎都在每个 notifier的同一线程中调用。

这意味着即使您有几个EventHandlers注册 some WatchManager,它们都会从同一个线程发出回调。

我找不到明确记录的位置,但似乎从该ThreadedNotifier.loop()方法的生成文档中隐含,它说:

事件最多每 min(read_freq, timeout) 秒读取一次,并且仅当要读取的事件大小 >= 阈值时才读取一次。

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

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

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

于 2010-10-20T13:33:37.727 回答