所有的实例在Preferences单个Java虚拟机(JVM)的线程之间始终是线程安全的。由于Preferences可以在多个JVM之间共享,因此有一些特殊的方法可以处理虚拟机之间的同步更改。
如果您有应仅在单个实例中运行的应用程序,则不需要外部同步。
如果您有一个应用程序在单个系统上的多个实例中运行,因此Preferences需要在系统上的JVM之间协调访问,则可以使用任何节点的sync()方法Preferences来确保对该Preferences节点的更改对其他JVM可见。系统:
// 警告:如果要使用您的应用程序,请不要使用它 // 只在机器上运行一次实例 // (大多数桌面应用程序可能就是这种情况) try { preferences.sync(); } catch (BackingStoreException e) { // 在将首选项保存到后备存储时处理任何错误 e.printStackTrace(); }