如果我有一个类,其中包含一个由setter和getter方法公开的私有布尔值 如果我想读取和写入,我是否必须将这些方法设置为同步 来自不同线程的布尔值?
答案 0 :(得分:3)
通常不需要同步访问简单值。通常,您只需要标记volatile
,这样可以减少限制并提供更多信息。
这完全取决于您如何访问该值。
在某些情况下,使用AtomicBoolean
可能是最好的方法。这为volatile
提供了略微不同的保证。
有关详情,请参阅问题Java: volatile boolean vs AtomicBoolean问题。
答案 1 :(得分:2)
查看java/util/concurrent/atomic
中的课程可能对您有用。例如AtomicBoolean
。
答案 2 :(得分:0)
是的,让setter和getters同步是一个好主意。读取或写入布尔值不是原子命令,因此在极少数情况下,它可能会导致一些问题。 (你不能确定你是否阅读RAM或cashe)。除非它是不稳定的。