volatile jdk1.5以后重获新生
cpu指令 cpu缓存 内存
缓存一致性问题
如何解决缓存一致性问题
硬件层面
通过在总线上加LOCK#锁的方式
锁住总线导致其他cpu不能访问内存
通过缓存一致性协议
组织两个以上的处理器同时修改内存区域数据
Intel的MESI协议
并发编程问题
原子性问题
可见性问题
有序性问题
指令重排序(Instruction Reorder)
java内存模型也会存在缓存一致性问题和指令重排序的问题
volatile的使用优化
64位字节填充,LinkedTransferQueue 避免头节点和尾节点加载到同一个缓存行,使头、尾节点在修改时不会互相锁定。
Java_多线程_volatile
最新推荐文章于 2022-06-28 00:31:25 发布