线程和pyfsevents

2024-10-02 04:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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

    pyfsevents.registerpath("/example", callback)
    pyfsevents.listen()

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


Tags: 模块函数路径程序框架examplecallback事件
2条回答

试试MacFSEvents。它是线程安全的。https://github.com/malthe/macfsevents

是的,正如the docs所说(在“限制”下)

Thread-unsafe: CFRunLoop's and Python threads do not quite interact well when put together :)

我建议使用multiprocessing隔离专用进程中的pyfsevents使用,它可以以任何方式(例如,通过multiprocessing.Queue)向主进程发送“警告”。在

如果您需要在Python2.5上运行,multiprocessing模块中有一个backport,后者是从python2.6开始就在标准库中的,但是在2.4和2.5上后台运行良好。在

相关问题 更多 >

    热门问题