java并发编程学习笔记之cpu实现原子操作

两种实现方式:

总线锁定:通过锁定总线,也就是锁定后,总线数据的传输将被阻塞

缓存锁定:通过缓存一致性实现原子操作,缓存一致性常用MESI控制协议实现

MESI控制协议:

MESI是四种状态,用来表明缓存中数据的状态。

M(modify):表示缓存中数据修改,与内存中不一致,只能有一个缓存拥有这个状态,且其他拥有该数据的缓存为i状态

E(exclusive): 表示别的缓存中没有该数据,只有该缓存独占,当别的缓存从内存中读取后,变为s状态,只能有一个缓存拥有这个状态

S(shared): 表示除了该缓存,其他缓存也拥有该数据,当该状态存在时,不可能存在其他所有状态。

I(invalid): 表示失效状态,当有另一个缓存行状态为M状态时该缓存变为此状态。

你可能感兴趣的:(java并发编程学习笔记之cpu实现原子操作)