猿问

比较在 AtomicInteger.incrementAndGet()

我知道 CompareAndSwap 在 Java 并发中用于 AtomicInteger.incrementAndGet() 等方法的引擎盖下,它像无限循环一样工作,直到它成功并阻塞它的线程

它将内存位置的内容与给定值进行比较,并且仅当它们相同时,才将该内存位置的内容修改为新的给定值。这是作为单个原子操作完成的。原子性保证根据最新信息计算新值;如果该值同时被另一个线程更新,则写入将失败。操作的结果必须表明它是否执行了替换;这可以通过简单的布尔响应(这种变体通常称为比较和设置)来完成,也可以通过返回从内存位置读取的值(而不是写入其中的值)来完成。

那么incrementAndGet() 中内存位置给定值内容是什么?


qq_花开花谢_0
浏览 179回答 1
1回答

慕容3067478

例如,当一个线程看到当前值时,1它会将其递增为2as given value,并与2当前时刻内存中的实际值进行比较。如果成功,2将返回。否则,它将检索最新的值,假设它x,并增加到x + 1给定的值。...这个过程会一直持续到比较成功为止。
随时随地看视频慕课网APP

相关分类

Java
我要回答