解析==java volatile关键字
来源:互联网 发布:双击运行java文件 编辑:程序博客网 时间:2024/06/08 07:29
java volatile
程序多线程执行环境:
主内存
线程A + 线程A内存
线程B + 线程B内存
1.没有同步机制的一般情况下,jvm会对变量复制一份
主内存 (normal_var)
线程A + 线程A内存 (normal_var_copy_A)
线程B + 线程B内存 (normal_var_copy_B)
所以可以看到线程A和B是各自操作自己的复制变量,需要的时候才会写入主内存里。
2.使用同步机制volatile关键字,jvm不会复制变量
主内存 (normal_var)
线程A + 线程A内存 (normal_var)
线程B + 线程B内存 (normal_var)
所以可以看到线程A和B是操作主内存里的变量。
但是,变量一定是拥有原子特性的。
private volatile int i;
i++ (读值-修值-写值) 是一串原子的组合,不能保证同步,只可以是同一块内存。
程序多线程执行环境:
主内存
线程A + 线程A内存
线程B + 线程B内存
1.没有同步机制的一般情况下,jvm会对变量复制一份
主内存 (normal_var)
线程A + 线程A内存 (normal_var_copy_A)
线程B + 线程B内存 (normal_var_copy_B)
所以可以看到线程A和B是各自操作自己的复制变量,需要的时候才会写入主内存里。
2.使用同步机制volatile关键字,jvm不会复制变量
主内存 (normal_var)
线程A + 线程A内存 (normal_var)
线程B + 线程B内存 (normal_var)
所以可以看到线程A和B是操作主内存里的变量。
但是,变量一定是拥有原子特性的。
private volatile int i;
i++ (读值-修值-写值) 是一串原子的组合,不能保证同步,只可以是同一块内存。
0 0
- 解析==java volatile关键字
- java Volatile关键字解析
- Java volatile关键字解析
- java volatile关键字解析
- JAVA volatile关键字解析
- Java volatile关键字解析
- java:volatile关键字解析
- java volatile关键字解析
- 解析java中volatile关键字
- 【Java基础】volatile关键字解析
- java之volatile关键字解析
- Java 并发:volatile 关键字解析
- 解析java中volatile关键字
- Java 并发:volatile 关键字解析
- Java的volatile关键字解析
- java中volatile关键字的解析
- java关键字之transient和volatile解析
- Java并发编程:volatile关键字解析
- Office 365 – SharePoint 2013 Online 之WebPart开发、部署教程
- Linux Mysql 数据库备份脚本
- Log4j 经典总结
- Robotuim测试步骤
- 健康、癌症与死亡
- 解析==java volatile关键字
- ListView异步记载图片+解决图片错位的问题解决+使用二级缓存(LruCache+DiskLruCache)
- 2015台儿庄古城一日游 台儿庄一日游【图文】
- 自动内存管理机制、java内存泄漏的定位与分析
- 程序设计题目三
- C3P0 连接池详细配置
- PHP常用数组函数总结(转载)
- JS的常用正则表达式 验证密码用户名等JS正则
- 黑马程序员——Java基础---面向对象