变量声明为 volatile 类型时 。编译器与运行时都会注意到这个变量是共享的 。不会将该变量上的操作与其他内存操作一起重排序 。volatile 变量不会被缓存在寄存器或者对其他处理器不可见的地方 。因此在读取 volatile 类型的变量时总会返回最新写入的值 。
在访问 volatile 变量时不会执行加锁操作 。也就不会使执行线程阻塞 。因此 volatile 变量是比 sychronized 关键字更轻量级的同步机制 。
加锁机制既可以确保可见性和原子性 。而 volatile 变量只能确保可见性 。
想了解更多Java相关 。百度搜索圈T社区www.aiquanti.com 。免费视频教程 。纯干货
推荐阅读
- 目前最好的单反相机是什么品牌?
- 怀旧服副本抵抗宏怎么做?
- 目前最好最值得买的专业单反数码相机有什么推荐?
- 打算买个大疆无人机和佳能单反相机,各位条友有什么好的建议?
- 厦门大学在全国排名大概是多少?
- 单反相机哪个镜头好用?
- 为什么说厦门好,适合居住?
- 单反相机的优缺点是什么?
- 哪个单反相机拍照好又能拍视频 ?有什么好的推荐?