属性同步
在保持一个对象的属性同步变化时,有两种方法。
一个是在set方法里同步,一个是在get方法里同步。
如果是调用多次set、一次get的话,就在get里进行同步。
如果是调用一次set、多次get的话。就在set里进行同步。
都调用多次时,建议在set中进行同步,因为这样线程更安全。
例如对象中有一个Map属性和String属性是相关联的。
有些线程不安全的map在转成string时,由于每次读取的顺序都可能不一样,这会导致转出来的string可能不一样。
在get中进行同步,会进行多次转化,就会导致后面进行比较时会偶尔出错。
只在set里同步数据的话,就只对map进行一次读取,就不会因为线程不安全的原因出错。
浙公网安备 33010602011771号