此前的Java 8中的AtomicLong類CAS代碼爲:Java 8中AtomicLong類的CAS相關更改如何工作?
public final long incrementAndGet() {
for (;;) {
long current = get();
long next = current + 1;
if (compareAndSet(current, next))
return next;
}
}
但現在已改爲單內在線:
public final long incrementAndGet() {
return unsafe.getAndAddLong(this, valueOffset, 1L) + 1L;
}
這段代碼有超過前者有什麼優勢呢?這個新代碼如何工作?
感謝您的鏈接。 – 2015-03-29 13:26:53