阅读背景:

Java线程与内存模型

来源:互联网 
1.工作流程图
13932428-ec39f4e0e4680c05.png
线程操作内存图
2.内存之间的交互操作 2.1 Lock (锁定): 把一变量标识为一条线程独占的状态 2.2 unlock (解锁) : 把处于锁定状态的变量释放出来 2.3 read (读取) : 把一个变量从主内存加载到工作内存 2.4 load (载入) : 把工作内存中的变量值复制到变量副本当中 2.5 use (使用) : 将值传递给工作引擎 2.6 assign (赋值) : 把从执行引擎接收到的值传递给工作内存的变量 2.7 store (存储) : 把工作变量当中的值传送到主内存当中,之后可以进行write操作 2.8 write (写入) : 把操作完成之后的值写到主内存的对应变量当中 3.volatile类型变量的特殊规则 3.1 可见性:只要是volatile修饰的变量,那么只有有任一个线程对该变量进行了修改,那么这次的修改对所有线程就是可见的,不会出现脏读或者是幻读的问题 3.2 禁止指令重排序优化,保证代码顺序执行,防止其他线程抢占式串行执行 4.对于long和double类型的特殊规则 2.内存之间的交互操作 2.1 Lock (锁定): 把一变量



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: