我能够将Jnotify
用于监听事件,如文件编辑,修改等。我关注的是Jnotify的工作原理。我的意思是它使用get事件。在资源使用的参考中使用是否安全。我读了另一个问题 - https://stackoverflow.com/questions/11100003/why-does-jnotify-consume-so-much-resources - 它耗费了大量资源。
我能解决问题的另一种方法是while循环直到条件然后程序关闭。
使用哪个会消耗更少的资源。
答案 0 :(得分:5)
linnotify 与内核通信,以获得有关文件系统更改的通知。没有轮询,内核会通知订阅文件夹的更改。
jnotify 是围绕 libjnotify 的JNI包装器。
尽管如此,如果您使用的是Java 7,那么所有这些都是历史记录,取而代之的是新的Java文件I / O(NIO.2)包。
答案 1 :(得分:2)
来自site ...
JNotify Linux支持
JNotify Linux API是Linux INotify API的瘦包装器。以来 Linux INotify API不支持对目录进行递归侦听, JNotify通过在每个上创建一个INotify监视来添加此功能 被监视目录下的子目录(透明地)。这个 进程需要一个与目录数量成线性关系的时间 树被递归观看,并需要系统资源, 即 - INotify手表,有限,默认为8192 每个流程都有手表。
记录了这些限制。还提供有关实施的想法。
您的问题与来自Apache公共区域的File changed listener in Java高度投票的答案有关DefaultFileMonitor。我建议你试一试。