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

怎甘沉沦 提交于 2019-12-14 17:41:51

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

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

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

ANYWAY...

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!