private volatile int value = 0;
public void setValue(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
如果有兩個執行緒A和B,A先呼叫setValue方法,然后B呼叫getValue方法,那么B執行緒執行方法回傳的結果是什么?
我感徑訓是不確定,volatile禁止一個執行緒內代碼重新排序,不能確保B執行緒經A執行緒晚執行結束,在執行隨時可能發生執行緒調度
uj5u.com熱心網友回復:
把a執行緒的優先級設定成高于b是不是可以解決uj5u.com熱心網友回復:
我記得老師講過,我們也試驗過,權重很雞肋uj5u.com熱心網友回復:
弄明白了happens-before規則 保證2個執行緒中對volatile 變數的寫操作先發生于對volatile 變數的讀操作
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268156.html
標籤:Eclipse
上一篇:新人落地!
