Я хочу знать разницу между 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)
}
}
Эти два метода идентичны?