- 轻量级synchronized,不会引起线程调度和上下文切换
- 并发编程中保证了共享变量的可见性,不能保证原子性
- volatile 保证了虚拟机在执行相关代码段时不会进行指令重排(例如:初始化 volatile 字段修饰的变量)
如果一个字段被声明为volatile,那么Java线程内存模型保证所有的线程看到这个变量的值是一致的
Volatile实现原理
- 将处理器缓存行数据写回到主内存
- 处理器的缓存行数据写回到主内存时导致其他处理器缓存无效,数据必须再次从主内存获取
如果一个字段被声明为volatile,那么Java线程内存模型保证所有的线程看到这个变量的值是一致的
本文标题:Volatile关键字
本文链接:https://www.haomeiwen.com/subject/hwnjwftx.html
网友评论