模块pyfsevents允许Python程序使用macosxfsevents框架。可以注册一个路径和一个回调函数,然后调用listen()函数,该函数将一直阻塞,直到注册的路径中发生文件系统事件为止。在
pyfsevents.registerpath("/example", callback)
pyfsevents.listen()
我想在多线程程序中使用这个模块,让一个线程阻塞并等待文件系统事件,然后通知另一个线程来处理事件。不幸的是,listen()似乎阻塞了整个程序,而不仅仅是调用线程。有人能证实吗?有没有办法只阻止调用线程?如果没有,是否有实现类似功能的方法,即让线程检测目录中的更改,最好不进行轮询?在
试试MacFSEvents。它是线程安全的。https://github.com/malthe/macfsevents
是的,正如the docs所说(在“限制”下)
我建议使用multiprocessing隔离专用进程中的
pyfsevents
使用,它可以以任何方式(例如,通过multiprocessing.Queue
)向主进程发送“警告”。在如果您需要在Python2.5上运行,
multiprocessing
模块中有一个backport,后者是从python2.6开始就在标准库中的,但是在2.4和2.5上后台运行良好。在相关问题 更多 >
编程相关推荐