簡體   English   中英

揮發性變量與原子變量之間有什么區別?

[英]Wwhat's the difference between Volatile variable vs Atomic variable?

如果僅考慮獲取/設置方法,它們是否相同? 還是說,以下兩段代碼是否等效?

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);
}

Atomic *類的優點是它們的原子方法,例如“ getAndSet()”或“ compareAndSet()”,否則將需要鎖定。

如果您沒有任何復合操作,例如,僅要確保所有線程看到最新的'a'值,那么volatile就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM