CAS(Compare And Swap):
我们先要学习的是并发编程中的CAS,也就是原子操作
那么,什么是原子操作?如何实现原子操作?...什么是原子操作:
原子,也是最小单位,是一个不可再分割的单位,不可被中断的一个或者一系列操作
CAS是以一种无锁的方式实现并发控制,在实际情况下,同时操作一个对象的概率非常小,所以多数加锁操作做的基本是无用功... CAS以一种乐观锁的方式实现并发控制
如何实现原子操作:
Java可以通过锁和循环CAS的方式实现原子操作
为什么要有CAS:
CAS就是比较并且替换的一个原子操作,在CPU的指令级别上进行保证...只能保证一个共享变量的原子操作
当对一个共享变量执行操作时,我们可以使用循环CAS的方式来保证原子操作,但是对多个共享变量操作时,循环CAS就无法保证操作的原子性,这个时候就可以用锁,或者有一个取巧的办法...,但是源对象src却没有改变,因为原子引用类和原对象本身是两个东西,CAS后就可以理解为内存中的东西变了,也可以说是引用变了,他只能保证你在改变这个引用的时候保证是原子性的
记得之前上面说的ABA问题吧