public final long incrementAndGet() {return unsafe.getAndAddLong(this, valueOffset, 1L) + 1L;
}
AtomicLong源码中的incrementAndGet方,unsafe.getAndAddLong(this, valueOffset, 1L)方法我清楚是线程安全的,但是在+1之后不又是线程不安全了么showtooltip
因为getAndAddLon返回的long只有当前线程读写
public final long incrementAndGet() {
long v = unsafe.getAndAddLong(this, valueOffset, 1L); //线程安全
long r = v + 1L; //线程安全
return r;
}