如果我有一类控股私人布尔由setter和getter方法 公之于众,我会设置这些方法为synchronized,如果我想读取和 编写从不同的布尔线程?访问布尔
Q
访问布尔
0
A
回答
0
是的,让制定者和获得者同步是一个好主意。读取或写入布尔值不是原子命令,因此在极少数情况下可能会导致一些问题。 (你不能确定你是否阅读表格RAM或cashe)。除非它是不稳定的。
+0
+1“读取或写入布尔值不是原子的”。但即使对于易失性也是如此,因为简单的分配可能会导致多个JVM指令及其在同步被考虑的这个级别。 – sgp15
3
同步访问简单值通常是不必要的。一般来说,你需要的是将其标记为volatile
,这是限制性较小和信息量较大。
这一切都取决于您如何访问价值。
在某些情况下,使用AtomicBoolean
可能是最好的方法。这提供了与volatile
稍有不同的保证。
有关更多详细信息,请参见问题Java: volatile boolean vs AtomicBoolean问题。
2
看看java/util/concurrent/atomic
中的课程可能对您有用。如AtomicBoolean
。
相关问题
- 1. Sqlite的API布尔访问
- 2. 访问ascx.cs公共布尔在ascx html
- 3. 无法访问布尔值的属性
- 4. 访问的MBean是布尔在WLST
- 5. 如何访问布尔数组的Java
- 6. 用布尔列访问其他列
- 7. 布尔值自定义访问器
- 8. NullPointerException异常访问布尔的Java
- 9. 布尔问题
- 10. 布尔LINQ问题
- 11. 访问德尔福
- 12. 布尔逻辑问题
- 13. 布尔代数的问题
- 14. 布尔数组问题
- 15. 布尔虚空问题
- 16. Cocos2d中的布尔问题
- 17. 布尔节能问题
- 18. 布尔运算符问题
- 19. 切换布尔问题
- 20. 1不== 1,布尔问题
- 21. Python argparse布尔问题
- 22. 布尔逻辑问题
- 23. 问题布尔字段
- 24. Java的布尔问题
- 25. 布尔测试问题
- 26. Json.Net布尔分析问题
- 27. 简单布尔问题
- 28. 问题与setVisible(布尔值)
- 29. MySQL查询问题布尔
- 30. 键访问哈斯克尔
你有吗?不,但你可能想。对于这一点,同步getter和setter可能不足以保护你,这取决于两个线程正在访问哪些其他数据。你真的需要给我们更多的信息,说明每个线程在做什么来回答问题。 –