volatile 关键字笔记
2024-08-28 06:21:44
当一个变量被 volatile 修饰时,任何线程对它的写操作都会立即刷新到主内存中,并且会强制让缓存了该变量的线程中的数据清空,必须从主内存重新读取最新数据。
volatile 修饰之后并不是让线程直接从主内存中获取数据,依然需要将变量拷贝到工作内存中。
但这里有个误区,这样的使用方式容易给人的感觉是:
对 volatile 修饰的变量进行并发操作是线程安全的。
这里要重点强调,volatile 并不能保证线程安全性!
内存可见性只是 volatile 的其中一个语义,它还可以防止 JVM 进行指令重排优化。
最新文章
- WEB前端工程师(实践)制作天气预报难度:简单
- Visual Studio 15 Preview 4安装
- mybatis 3.2.7 与 spring mvc 3.x、logback整合
- Delphi Format中的换行符号是什么
- 用 rsync 同步本地和服务器的文件
- 替换应用程序DLL动态库的详细方法步骤 (gts.dll为例)
- android动画基础之Animation
- Storm入门(六)深入理解可靠性机制
- python学习day15 模块(重点)
- Java开发笔记(二)Java工程的帝国区划
- C++第二章作业
- css3和html5
- 性能优化-YAHOO军规
- JDK1.7安装和配置及注意事项
- 【php增删改查实例】第二十三节 - PHP文件上传
- CSS实现垂直居中的5种思路
- 浅谈平衡树splay
- java绘图合并图像AlphaComposite模式测试
- Mac OSX 如何在命令行中生成 md5、sha1、sha256 校验和
- 在Eclipse中安装JSHint插件