-
1
CAS(比较与交换,Compare and swap)是一种有名的无锁算法。CAS, 是CPU指令,它有三个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和
内存值V相同时,将内存值V修改为B,否则什么都不做 -
2
程序每对值做一次修改,都会记一次count,多线程的时候,线程a将值修改后,线程b再修改回来,值是没有变化的,但是已经被改变了两次,用CAS可以对count进行判断,看看是不是之前的count -
3
CAS只有一步原子操作,速度特别快,也有开销(暂不做讨论) -
4
从Java5开始,在java.util.concurrent包下提供了大量支持高效并发访问的集合接口和实现类。如:ConcurrentMap、ConcurrentLinkedQueue等线程安全集合。这些底层是由CAS实现的
学习CAS算法
最新推荐文章于 2019-09-02 21:15:51 发布