Chr*_*ika 7 java atomic set compare-and-swap
我想知道原子类中set()和compareAndSet()之间的区别.set()方法是否也确保原子过程?例如这段代码:
public class sampleAtomic{
private static AtomicLong id = new AtomicLong(0);
public void setWithSet(long newValue){
id.set(newValue);
}
public void setWithCompareAndSet(long newValue){
long oldVal;
do{
oldVal = id.get();
}
while(!id.compareAndGet(oldVal,newValue)
}
}
Run Code Online (Sandbox Code Playgroud)
这两种方法是否相同?
该set和compareAndSet方法采取不同的:
set()方法是否也确保原子过程?
是.它是原子的.因为set新值只涉及一个操作.以下是该set方法的源代码:
public final void set(long newValue) {
value = newValue;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9766 次 |
| 最近记录: |