解析==java volatile关键字
2015-01-13 14:32
253 查看
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++ (读值-修值-写值) 是一串原子的组合,不能保证同步,只可以是同一块内存。
相关文章推荐
- java关键字之transient和volatile解析
- Java并发编程:volatile关键字解析
- 【转】Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- 深入解析Java中volatile关键字的作用
- java中volatile关键字的含义解析及用途
- Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- Java基础之Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- 【0001】【深入解析Java中volatile关键字的作用】
- Java并发编程:volatile关键字解析
- 深入解析Java中volatile关键字的作用
- Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- 深入解析Java中volatile关键字的作用
- Java并发编程:volatile关键字解析
- java并发(二) volatile关键字解析