volatile实现原理
2017-02-17 09:22:11 0 举报
volatile是Java提供的一种轻量级的同步机制。当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去主存中读取新值。而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候被写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法看到最新值。 简单来说,volatile关键字可以确保线程间变量的可见性和有序性。
作者其他创作
大纲/内容
JVM
缓存一致性协议
3
volatile两条实现原理:1.Lock前缀指令会引起处理器缓存会写到内存2.一个处理器的缓存会写到内存,会导致其他处理器的缓存无效
CPU3
总线传播的数据
2
1嗅探总线,处理器.对应的内存地址被修改2.缓存行设置成无效状态3.如果处理器要修改数据,会从系统内存把数据读到处理器缓存
处理器缓存行
CPU2
发送lock前缀指令
CPU1
系统内存
volatile变量
1
收藏
收藏
0 条评论
回复 删除
下一页