MESI 是一个(CPU 级别的)缓存一致性协议。看过 N 次 MESI 的 wiki 页面,一起看不进去,网上搜的一些文章,经常会介绍 MESI 的状态机和各种状态,也看得云里雾里。最近硬着头皮啃完了 wiki,感觉理解 MESI 协议的核心其实在 wiki 的第一句:<
文章续述MESI协议中Store Buffer与Invalid Queue优化会导致可见性延迟和内存顺序不一致,需用内存屏障恢复;高级语言以volatile封装屏障语义,C/C++与Java实现不同。原子性由总线锁或缓存锁保障,自旋锁基于lock;xchg实现,并衍生信号量、互斥锁、synchronized、CAS无锁等;锁同时处理有序性与可见性,应控制锁粒度并优选数据结构。
完成下面两步后,将自动完成登录并继续当前操作。