H5W3
当前位置:H5W3 > 问答 > 正文

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

public final long incrementAndGet() {

return unsafe.getAndAddLong(this, valueOffset, 1L) + 1L;

}
AtomicLong源码中的incrementAndGet方,unsafe.getAndAddLong(this, valueOffset, 1L)方法我清楚是线程安全的,但是在+1之后不又是线程不安全了么。这点不是很清楚,请大佬讲解。这个是看java并发编程之美遇到的问题

回答

但是在+1之后不又是线程不安全了么

这里的 +1 为什么线程不安全?

因为getAndAddLon返回的long只有当前线程读写

public final long incrementAndGet() {
long v = unsafe.getAndAddLong(this, valueOffset, 1L); //线程安全
long r = v + 1L; //线程安全
return r;
}

未经允许不得转载:H5W3 » AtomicLong中的incrementAndGet方法线程安全的么

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址