java - 在多线程环境中访问 boolean 值

标签 java android multithreading

如果我有一个类持有通过 setter 和 getter 方法公开的私有(private) boolean 值 ,如果我想读取和写入,我是否必须将这些方法设置为同步 来自不同线程的 boolean 值?

最佳答案

同步简单值的访问通常是不必要的。一般来说,您所需要做的就是将其标记为 volatile ,这样限制较少,信息更丰富。

这在很大程度上取决于您访问该值的方式。

在某些情况下,使用AtomicBoolean可能是最好的方法。这为 volatile 提供了稍微不同的保证。

查看问题Java: volatile boolean vs AtomicBoolean问题以获取更多详细信息。

关于java - 在多线程环境中访问 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15735366/

相关文章:

android - 无法在客户端打开文件,在 Android 中尝试服务器端错误

java - Future.get(timeout) 的底层线程行为

c - 当我使用 pthread 时,新窗口不会打开

python - 为什么gevent会执行这个未连接的greenlet?

java - 将60FPS游戏克隆成四屏

java - JOGL - glu.gluUnProject 总是返回 0.0

android - 我们可以在 Android 应用程序中获取 chrome 浏览器的历史记录/书签,而无需 root 手机吗?

java - Dagger2 构造函数注入(inject)不起作用

java - serialVersionUID 是否由子类继承,如果我在父类(super class)中有默认的 serialVersionUID

java - PeriodFormatter - 如果小时或分钟恰好是一位数字,如何在前面加上 0?