我正在学习迈克尔& Scott的无锁队列算法并试图用C++实现它。 但是我在我的代码中产生了一场比赛,并认为可能会出现算法竞赛。 我这里看报纸: Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms 和原始出队的伪代码如下: dequeue(Q: pointer to queue_t, p
我想了解getAndIncrement中的current是如何更新的,下面是这段代码。 public final int getAndIncrement() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current, next))