volatile具體使用場景

volatile特別適合於狀態標記量
舉個栗子:
volatile boolean inited = false;

// 線程1
context = loadContext();
inited = true;

// 線程2
while(!inited) {
    sleep();
}
doSomethingWithConfig(context);
分析:
上面的代碼利用volatile修飾的inited保證上下文的初始化是否完成,線程1初始化,線程2必須保證線程1初始化完成才能繼續進行下去。加入volatile可以保證變量inited的改變及時刷到主存中,可以被其他線程及時看到。
發佈了164 篇原創文章 · 獲贊 114 · 訪問量 69萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章