, 处理器读取整个缓存行到适当的缓存(L1,L2,L3的或所有)
缓存命中 cache hit 如果进行告诉缓存行填充操作的内存地址仍然是下次处理器访问的地址时, 处理器从缓存中读取操作数, 而不是从内存读取...每一个对象都会有一个 monitor 与其关联, 线程执行到 monitor enter 指令时, 将会尝试获得 monitor 的所有权, 即尝试获取锁, 当 monitor 被持有后, 它将处于锁定状态...Java 对象头
Java 中每个对象都有一个对象头, 数组比较特殊, 会有单独的一块区域(ArrayLength)保存数组的长度, 需要 4个字节 32bit 的长度空间来保存, 普通对象则需要 2...偏向锁
当一个线程访问同步代码块并获取到锁后, 会在对象头和栈帧(栈帧是一个内存区块,是一个数据集,是一个有关方法(Method)和运行期数据的数据集)中的锁记录存储锁偏向的线程ID, 以后该线程在进入和退出同步块时不需要进行...重量级锁
当升级为重量级锁, 其他线程想要获取锁时, 只有被阻塞. 等待锁释放, 唤醒等待的线程, 进行新一轮的锁竞争.