在Java中建立关系

voi*_*oid 0 java concurrency multithreading java.util.concurrent happens-before

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

Pet*_*rey 6

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

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