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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章