Python 线程和pyfsevents

Python 线程和pyfsevents,python,macos,multithreading,Python,Macos,Multithreading,该模块允许Python程序利用Mac OS FSX事件框架。可以注册一个路径和一个回调函数,然后调用listen()函数,该函数将一直阻塞,直到注册的路径中发生文件系统事件 pyfsevents.registerpath("/example", callback) pyfsevents.listen() 我想在多线程程序中使用这个模块,让一个线程阻塞并等待文件系统事件,然后通知另一个线程处理该事件。不幸的是,看起来listen()阻塞了整个程序,而不仅仅是调用线程。有人能证实这

该模块允许Python程序利用Mac OS FSX事件框架。可以注册一个路径和一个回调函数,然后调用listen()函数,该函数将一直阻塞,直到注册的路径中发生文件系统事件

    pyfsevents.registerpath("/example", callback)
    pyfsevents.listen()
我想在多线程程序中使用这个模块,让一个线程阻塞并等待文件系统事件,然后通知另一个线程处理该事件。不幸的是,看起来listen()阻塞了整个程序,而不仅仅是调用线程。有人能证实这一点吗?有没有办法只阻止调用线程?如果没有,是否有实现类似功能的方法,即让线程检测目录中的更改,最好不用轮询?

是,例如(在“限制”下)

线程不安全:CFRunLoop和Python 线程不能很好地交互 放在一起时:)

我建议使用它来隔离专用流程中使用的
pyfsevents
,该流程可以以您喜欢的任何方式(例如,通过
多处理.队列
)向主流程发送“提醒”警报


如果需要在Python2.5上运行,则有一个
多处理
模块,后者仅在Python2.6之后才出现在标准库中,但是backport在2.4和2.5上运行良好。

尝试MacFSEvents。它是线程安全的