java CAS代码实现
时间: 2023-03-26 17:01:51 浏览: 85
CAS(Compare And Swap)是一种并发控制的机制,可以保证多个线程同时对同一个变量进行操作时,只有一个线程能够成功修改变量的值。以下是一个简单的 Java CAS 代码实现:
```java
public class CASDemo {
private volatile int value; // 需要进行原子操作的变量
public synchronized int getValue() {
return value;
}
public synchronized boolean compareAndSet(int expectedValue, int newValue) {
if (value == expectedValue) {
value = newValue;
return true;
}
return false;
}
}
```
在上面的代码中,`value` 是需要进行原子操作的变量,使用 `volatile` 关键字修饰,保证了多线程之间的可见性。`getValue()` 方法用于获取当前变量的值,使用 `synchronized` 关键字修饰,保证了多线程之间的互斥性。`compareAndSet()` 方法用于比较当前变量的值是否等于期望值,如果相等则修改变量的值为新值,并返回 `true`,否则返回 `false`。在 `compareAndSet()` 方法中也使用了 `synchronized` 关键字,保证了多线程之间的互斥性。