当前位置: 代码迷 >> 综合 >> AtomicLong中的incrementAndGet方法线程安全的么
  详细解决方案

AtomicLong中的incrementAndGet方法线程安全的么

热度:18   发布时间:2024-02-28 22:44:23.0
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;
}