java - 在Java中建立happens-before关系

标签 java multithreading concurrency java.util.concurrent happens-before

我知道,在java中建立happens-before关系有两种方法:同步块(synchronized block)和方法、volatile关键字。 (如果我是正确的,它不适用于最终字段)。 我的问题是:并发包中的原子变量的行为是否相似?他们可以建立happens-before吗?

最佳答案

是的,它们是线程安全的,因此您可以确定关系发生/之前和之后。

AtomicXxxx类操作使用 volatile 、CAS、原子添加或惰性/无序集。所有这些都有一些线程安全保证,但比同步更轻量。

关于java - 在Java中建立happens-before关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33889299/

相关文章:

java - 重写 setUI 中的 setIcon() 方法(new BasicComboBOxUI){}

java - Apache Commons 配置 - PropertiesConfiguration 已关闭

C 中的 CHIP8 - 如何正确处理延迟定时器?

java - Java 中的条件如何知道要触发哪个线程?

java - 不同步的方法产生一致的结果

java - 无法将 imageicon 设置为 JLabel,始终为 null

java - 运行没有包结构的java类

java - 单例中volatile的使用(Bill Pughs Solution)

android - 多个文件写入线程

php - 在 C++ 中调用单独的可执行文件?