元素个数无法确保一致性
tchen-coder opened this issue · 2 comments
tchen-coder commented
LENSHOOD commented
Hi,感谢你的提问。
根据代码,这里的 isFull()
的确是不保证只有单个线程通过的,实际的临界区,趋近于在 !atomic.CompareAndSwapUint64(&r.tail, oldTail, newTail
这行代码开始后才开始,因此在这行以及之前的代码,都是可以存在多个线程执行的。
不知道我是否正确理解了你的问题,如果理解有偏差,还请多提供多信息,我们再做探讨,谢谢!
tchen-coder commented
嗯,对的。