原子类将CPU的CAS(Compare And Switch)指令封装起来,做为一项库级特性提供给应用程序开发者。可是CAS有ABA的问题。因而额外的AtomicStampedReference 被提供,用来提供带版本号的数据比较。但是CPU一次只能执行一条CAS指令,也就是说,它一次只能对一个内存地址作CAS操做,它要如何作到同时比较两个“数据”,即操做数与其版本,呢?内存
答案是:双字或多字CAS指令?开发
ANYWAY...it
再有就是,有CAS的效率是由MESI提升的。若是这么说,那么volatile作什么呢?效率