我有两个在独立(本地)JVM中运行的java程序( A , B ),但访问相同的java.util.prefs.Preferences(java。 util.prefs.WindowsPreferences)
prefs = Preferences.systemNodeForPackage(Foo.class)
这两个程序在启动时都会调用一次。
A 是一个允许配置的GUI程序。更改将写入“首选项”节点。最后调用flush
。
B 是一个正在进行实际工作的后台程序。
A 向 B 发送通知,表明配置已更改。 B 读取更改的配置。
没有对首选项的并发访问,因为使用了Cross-JVM锁定(使用java.nio.channels.FileLock
)。
我的问题:这是一个安全的解决方案吗? B 会不会读取 A 写的内容?