Jnotify是如何工作的



我能够使用Jnotify来侦听文件装箱、修改等事件。我关心的是Jnotify的工作方式。我指的是它使用的get事件。在资源使用方面使用安全吗。我在另一个SO问题中读到——https://stackoverflow.com/questions/11100003/why-does-jnotify-consume-so-much-resources——它消耗了大量资源。

我可以解决问题的另一种方法是循环一段时间,直到程序关闭。

哪个会更好地使用,消耗更少的资源。

linnotify与内核进行对话,以获得文件系统更改的通知。没有轮询,内核会通知对已订阅文件夹的更改。

jnotify是一个围绕libjnotify的JNI包装器。

尽管如此,如果您使用的是Java7,那么所有这些都将被新的Java文件I/O(NIO.2)包所取代。

从站点。。。

JNotify Linux支持

JNotify Linux API是围绕Linux INotify API的精简包装器。自从Linux INotify API不支持在目录上递归侦听,JNotify通过在每个被监视目录下的子目录(透明)。这该过程所花费的时间与中的目录数量成线性关系树被递归地监视并且需要系统资源,即-INotify手表,默认限制为8192每个进程的手表。

限制已记录在案。还给出了实现的想法。

您的问题与Java中的File changed监听器有关,这里的投票率很高的答案是来自Apache commons的DefaultFileMonitor。我建议你试一试。

最新更新