所有Java Properties的方法是否完全同步?

Tra*_*ker 9 java synchronization properties

我知道Properties类是Hashtable的子类.所以所有继承的方法都是同步的,但是属性的其他方法如store,load等呢?(专门处理Java 1.6)

Nik*_*ohl 16

java1.6的javadoc说:

此类是线程安全的:多个线程可以共享单个Properties对象,而无需外部同步.


Pet*_*Mmm 6

我总是发现文件免责声明误导,特别是初学者(如果不是你的情况,请原谅).

此类是线程安全的:多个线程可以共享单个Properties对象,而无需外部同步.

即使是线程安全的类也需要比你想象的更多的同步.在这些类上同步的是它们的方法,但通常用户在更复杂的上下文中使用这些类.

如果你只是放/得到它是好的,但有更多的代码事情变得更紧:

p.putProperty("k1","abc");
p.putProperty("k2","123");
String.out.println(p.get("k1")+p.get("k2"));
Run Code Online (Sandbox Code Playgroud)

此示例代码仅在多线程环境中打印shure"abc123",如果该部分是同步块(即使这样也可能出错).

出于这个原因(以及courrse性能)我更喜欢非线程安全类,我不得不思考:我的程序线程是否安全...