协调跨多个应用程序实例的首选项访问
Preferences
的所有实例在单个 Java 虚拟机(JVM)的线程中始终是线程安全的。由于 Preferences
可以跨多个 JVM 共享,因此有一些特殊方法可以处理跨虚拟机同步更改的问题。
如果你的应用程序应该仅在单个实例中运行,则不需要外部同步。
如果你的应用程序在单个系统上的多个实例中运行,因此需要在系统上的 JVM 之间协调 Preferences
访问,则可以使用任何 Preferences
节点的 sync()
方法来确保对 Preferences
节点的更改对于系统上的其他 JVM:
// Warning: don't use this if your application is intended
// to only run a single instance on a machine once
// (this is probably the case for most desktop applications)
try {
preferences.sync();
} catch (BackingStoreException e) {
// Deal with any errors while saving the preferences to the backing storage
e.printStackTrace();
}