0

我有两个线程和一个原子整数。两者都运行 1000 次迭代的循环。一个线程递增一,其他线程递减一。结果最后是 0。
到目前为止很好。
但是 a) 一个线程是否在因为 CAS 失败而无法编辑变量时等待下一条语句,或者 b= 每个线程是否有第二个后台线程(创建隐式)来编辑变量并等待它可以编辑变量?
第二个假设(b)没有意义,因为我得到了一个返回值,但我最好问一下。

4

1 回答 1

0

AtomicInteger 使用硬件/CPU 级别同步,线程将在 CAS 尝试失败之前等待特定的时间(假设 a. 部分正确)。此 wiki 有更多详细信息https://en.wikipedia.org/wiki/Compare-和交换

于 2019-05-05T16:06:51.233 回答