当需要返回值时,是否有AtomicInteger.getAndIncrement()
的情况,调用此方法的两个线程将获得相同的值?
对于AtomicInteger.incrementAndGet()
,这是有道理的,因为首先发生增量,所以两个线程将获得不同的值。
答案 0 :(得分:0)
getAndIncrement
和incrementAndGet
方法都保证返回值的唯一性。
这两种方法(a
-AtomicInteger
类的变量)之间可能存在以下关系:
a.IncrementAndGet() == a.getAndIncrement() + 1
另请参阅https://stackoverflow.com/a/15137349/3440745有关这些方法的实际实现。
答案 1 :(得分:0)
incrementAndGet
和getAndIncrement
都满足您的要求,因为它们会
以原子方式将给定值添加到当前值。
区别是:
incrementAndGet
返回更新值
getAndIncrement
返回当前值