如何使用无锁算法计算堆栈大小?

时间:2018-03-19 03:06:14

标签: c++ synchronization locking compare-and-swap

       struct Node {
              Node *next;
              data_t val;
              } *Top;

        data_t pop()
           {
             Node *t, *x;
                do{
                   t=top;
                   if(t==NULL)
                      return EMPTY;
                   x=t->next;
                   } while(!CAS(& Top, t, x));
            return t-val;
            }

上面的代码是pop操作的一个实现。如何在无锁(CAS)中计算堆栈的长度?

0 个答案:

没有答案