JNotify 与轮询

JNotify vs Polling

我正在使用 Java 6,无法使用 Watch 服务。我正在寻找轮询的替代方法。那么 JNotify 与轮询有何不同?还是 JNotify 使用轮询?

JNotify 使用本机 OS 文件系统通知支持。 在 Linux 上,它使用 INotify(它的名字的灵感来源),在 Windows 上,它使用 ReadDirectoryChangesW,在 Mac 上,它使用 FSEventStream API。 我在 2005 年左右开始使用 JNotify,远早于 JVM 支持文件系统通知。 今天推荐的方法是使用 JVM 支持,但如果您不能依赖它,那也是一个不错的选择。

需要记住的一件事是 JNotify 使用的 OS 支持有时不是很好。在某些情况下,文件系统事件会被 OS 删除,您对此无能为力。