摘要: Synchronized底层实现 1)先在Idea下载一个ByteCode插件来观察java经过编译之后的字节码 public class TestSync { synchronized void m() { } void n() { synchronized (this) {//monitoren 阅读全文
posted @ 2020-05-01 18:47 palapala 阅读(2068) 评论(0) 推荐(0) 编辑
摘要: CPU的内存屏障(硬件层级) Intel的CPU内存屏障逻辑: sfence:save| 在sfence指令前的写操作当必须在sfence指令后的写操作前完成 两条指令,如果不想让它重排,在两条指令中间加一道屏障。即 屏障两侧的写指令不能重排 lfence:load| 在lfence指令前的写操作当 阅读全文
posted @ 2020-05-01 12:22 palapala 阅读(1309) 评论(0) 推荐(1) 编辑
摘要: 硬件上存储器的层次结构 有一个问题: 当我们数据在L3到L6之间的时会被Load到不同的CPU之中,不同的CPU之间的数据怎么一致性 也就是说,一个线程改了CPU内部的数据,另一个线程在另一个CPU上怎么才能知道呢 解决办法 1. 把总线锁住(L2和L3之间加把锁),一个CPU访问L3上的一个数的时 阅读全文
posted @ 2020-05-01 11:51 palapala 阅读(321) 评论(0) 推荐(0) 编辑