处理器层面
加锁 :刷新处理器缓存
刷新处理器缓存
处理器通过缓存一致化协议,从除自身外的其他处理器的高速缓存中读取数据,并将结果更新到自己的缓存中
缓存一致化协议
当处理器写数据的时候,如果该变量是共享变量,及在其他处理器缓存中有此变量的副本,那么会通知其他处理器将变量缓存置为无效状态,然后其他处理器操作该变量的时候从主存中读取
锁的释放:冲刷处理器缓存
冲刷处理器缓存
将对变量的修改结果写入缓存或者主存中,而不是在寄存器或者写缓冲器中
JMM
加锁:清空工作内存中该变量的副本,从主内存中读取
锁释放:将变量写回主内存中,并且通知其他线程的工作线程该变量的副本无效