【发布时间】:2018-10-01 11:25:46
【问题描述】:
我知道 CompareAndSwap 是在 java 并发中的 AtomicInteger.incrementAndGet() 等方法的引擎盖下使用的,它像无限循环一样工作,直到它成功并阻塞它的线程
它将内存位置的内容与给定值进行比较,并且, 仅当它们相同时,才修改该内存的内容 位置到一个新的给定值。这是作为单个原子完成的 手术。原子性保证计算新值 基于最新信息;如果该值已由 与此同时,另一个线程,写入将失败。的结果 该操作必须表明它是否执行了替换; 这可以通过一个简单的布尔响应来完成(这个变体 通常称为比较和设置),或者通过返回从 内存位置(不是写入它的值)。
那么,incrementAndGet() 中的给定值和内存位置的内容是什么?
【问题讨论】:
标签: java concurrency atomic compare-and-swap