AtomicReference<Double>加减
时间: 2023-11-22 21:48:53 浏览: 89
二进制加减
根据提供的引用内容,AtomicReference是一个原子引用类型,可以保证在多线程环境下对其进行原子性操作。而Double是一个基本数据类型,不支持原子性操作。因此,我们需要将Double类型转换为AtomicReference<Double>类型,才能进行原子性操作。
下面是一个将AtomicReference<Double>类型的值进行加减的示例代码:
```java
AtomicReference<Double> atomicDouble = new AtomicReference<>(1.0);
Double delta = 0.5;
Double oldValue;
Double newValue;
do {
oldValue = atomicDouble.get();
newValue = oldValue + delta;
} while (!atomicDouble.compareAndSet(oldValue, newValue));
System.out.println("加上" + delta + "后的值为:" + atomicDouble.get());
do {
oldValue = atomicDouble.get();
newValue = oldValue - delta;
} while (!atomicDouble.compareAndSet(oldValue, newValue));
System.out.println("减去" + delta + "后的值为:" + atomicDouble.get());
```
上述代码中,我们首先创建了一个AtomicReference<Double>类型的对象atomicDouble,并将其初始值设置为1.0。然后,我们定义了一个delta变量,表示要加减的值。接着,我们使用do-while循环来进行原子性的加减操作,直到操作成功为止。最后,我们输出了加减后的结果。
阅读全文