elm*_*mar 1 java atomic volatile
如果我们只考虑get/set方法,它们是否相同?或者说,以下两段代码是等价的吗?
private volatile boolean a;
public boolean isA(){
return a;
}
public void setA(boolean a){
this.a = a;
}
private AtomicBoolean a;
public boolean isA(){
return a.get();
}
public void setA(boolean a){
this.a.set(a);
}
Run Code Online (Sandbox Code Playgroud)
Atomic*类的优点是它们的原子方法,如'getAndSet()'或'compareAndSet()',否则需要锁定.
如果您没有任何复合操作,例如只是想确保所有线程都看到'a'的最新值,那么volatile就足够了.
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |