AtomicInteger.getAndIncrement()中数字的重复

时间:2018-07-18 12:44:09

标签: java multithreading concurrency atomic

当需要返回值时,是否有AtomicInteger.getAndIncrement()的情况,调用此方法的两个线程将获得相同的值?

对于AtomicInteger.incrementAndGet(),这是有道理的,因为首先发生增量,所以两个线程将获得不同的值。

2 个答案:

答案 0 :(得分:0)

getAndIncrementincrementAndGet方法都保证返回值的唯一性。

这两种方法(a-AtomicInteger类的变量)之间可能存在以下关系:

a.IncrementAndGet() == a.getAndIncrement() + 1

另请参阅https://stackoverflow.com/a/15137349/3440745有关这些方法的实际实现。

答案 1 :(得分:0)

incrementAndGetgetAndIncrement都满足您的要求,因为它们会

以原子方式将给定值添加到当前值。

区别是:

  

incrementAndGet返回更新值

     

getAndIncrement返回当前值