java CAS 学习

CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术

CAS(V,A,B)

CAS的思想很简单:三个参数,一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false

 

由于CAS操作属于乐观派,它总认为自己可以成功完成操作,当多个线程同时使用CAS操作一个变量时,只有一个会胜出,并成功更新,其余均会失败,但失败的线程并不会被挂起,仅是被告知失败,并且允许再次尝试,当然也允许失败的线程放弃操作

posted @ 2018-08-14 18:03  永远的七号  阅读(200)  评论(0编辑  收藏  举报