CAS(Compare And Swap):
我们先要学习的是并发编程中的CAS,也就是原子操作
那么,什么是原子操作?如何实现原子操作?...什么是原子操作:
原子,也是最小单位,是一个不可再分割的单位,不可被中断的一个或者一系列操作
CAS是以一种无锁的方式实现并发控制,在实际情况下,同时操作一个对象的概率非常小,所以多数加锁操作做的基本是无用功... CAS以一种乐观锁的方式实现并发控制
如何实现原子操作:
Java可以通过锁和循环CAS的方式实现原子操作
为什么要有CAS:
CAS就是比较并且替换的一个原子操作,在CPU的指令级别上进行保证...,其他线程必须等待已经获得锁的线程运行完车之后才能获取锁,这样就会占用系统大量资源
CAS原理:
从CPU指令级别保证这是一个原子操作
CAS包含哪些参数:
三个运算符:
一个内存地址V...只能保证一个共享变量的原子操作
当对一个共享变量执行操作时,我们可以使用循环CAS的方式来保证原子操作,但是对多个共享变量操作时,循环CAS就无法保证操作的原子性,这个时候就可以用锁,或者有一个取巧的办法