1.工作流程图
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 (锁定): 把一变量

线程操作内存图