1. 什么是CAS?
- CompareAndSwap:比较并交换;
- CAS的判断思路:认为变量V的值应该是A,如果是的话就修改为B,如果不是A,就不修改,避免多线程同时修改出错;
- CAS的等价代码:
public class CasDemo implements Runnable {
private volatile int value;
public synchronized int compareAndSwap(int expectedValue, int newValue) {
int oldValue = value;
if (oldValue == expectedValue) {
value = newValue;
}