volatile
关键字表示被修饰的变量容易变化
被
volatile
关键字修饰的变量读、写操作都会从高速缓存或主内存中读取,来获取变量的相对新值
volatile关键字不会引起上下文切换,故也被成为轻量级锁
原理


volatile的作用
- 保障可见性
- 保障有序性
- 保障写操作的原子性
- 保障long/double型变量的写操作的原子性
不表示赋值操作具有原子性

volatile写操作



volatile读操作



volatile禁止重排序总结
- 写volatile变量操作与该操作之前的任何读、写操作不会被重排序
- 读volatile变量操作与该操作之后的任何读、写操作不会被重排序

volatile变量的开销
读、写都不会导致上下文切换,所以开销比较小

volatile应用场景





网友评论