gpt4 book ai didi

java - 线程是否会等到可以编辑(例如 addAndGet)原子变量为止?

转载 作者:行者123 更新时间:2023-12-02 05:58:26 25 4
gpt4 key购买 nike

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

最佳答案

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

关于java - 线程是否会等到可以编辑(例如 addAndGet)原子变量为止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55993705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com