为什么要用getAndIncrement 再判断 if (c + 1 < capacity)
来源:9-24 其他BlockingQueue类型的介绍

Kevin7012055
2020-11-18
老师您好:
为什么要用getAndIncrement 再判断 if (c + 1 < capacity),为什么不直接用incrementAndGet <capacity这样呢?
写回答
1回答
-
我认为getAndIncrement获取到值后直接在当前线程中进行操作,而incrementAndGet会使用CAS算法去进行比较替换,期间可能替换失败而导致过多的自旋操作,用getAndIncrement就没有多余的自旋操作这个步骤了
012020-11-25
相似问题