协调跨多个应用程序实例的首选项访问

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();
}