volatile总结

volatile可以保证可见性和有序性,具体分析见https://www.cnblogs.com/BonnieWss/p/12198101.html

场景1:原子操作

int a=0;//语句1
int b=0;//语句2
volatile int c=0;//语句3
int d=0;//语句4
int e=0;//语句5

加上volatile后,语句2和语句3不会重排,语句3和语句4也不会重排。

语句1和语句2可能重排,语句4和语句5可能重排

场景2:非原子操作

//eg1:
volatile Student student=null;
student=new Student();

//eg2:
volatile int f=0;
f++;

对于非原子操作的变量,被volatile修饰后,非原子操作的每一小步都不会重排序。

posted @ 2020-01-15 19:54  第二人生Bonnie  阅读(118)  评论(0编辑  收藏  举报