CAS与原子类,MESI缓存一致性协议(Modified, Exclusive, Shared...

原子类将CPU的CAS(Compare And Switch)指令封装起来,作为一项库级特性提供给应用程序开发者。但是CAS有ABA的问题。于是额外的AtomicStampedReference 被提供,用来提供带版本号的数据比较。可是CPU一次只能执行一条CAS指令,也就是说,它一次只能对一个内存地址做CAS操作,它要如何做到同时比较两个“数据”,即操作数与其版本,呢?

答案是:双字或多字CAS指令?

ANYWAY...

再有就是,有CAS的效率是由MESI提高的。如果这么说,那么volatile做什么呢?

你可能感兴趣的:(volatile,cas,atomic)