JAVA内存模型(一)

1、JMM(java内存模型)

操作内存共享变量与CPU工作缓存之间的原子操作

read(读取):从主内存读取数据

load(加载):从主内存加载数据

use(使用):从工作内存读取数据计算

assign(赋值):将计算结果赋值到主内存

store(存储):将工作内存写入主内存

lock(锁):将主内存变量加锁,标识为独占状态

unlock(解锁):将主内存变量解锁

2、volatile关键字

早期使用(总线加锁)方式来同步不同线程的共享变量

  对读取的共享变量进行lock,此时其他线程无法read该变量,将并行执行变为串行执行,性能低下

MESI缓存

    通过CPU的总线嗅探机制(监听)进行数据的同步,在线程对共享变量赋值后,立即同步到主内存,而不是线程结束后才同步到主

  内存,将另一线程的共享变量置为失效。

3、volatile底层原理:

  通过对assign操作lock,并使用MESI缓存机制实现

  

posted @ 2020-11-05 15:28  Covenant  阅读(85)  评论(0编辑  收藏  举报

ヾ(≧O≦)〃点我返回顶部嗷~