用这种方式替换互斥锁有什么意义?
void stack_push(stack* s, node* n)
{
node* head;
do
{
head = s->head;
n->next = head;
}
while ( ! atomic_compare_exchange(s->head, head, n));
}
不理解使用原子交换替换互斥锁的好处在哪里?
atomic_compare_exchange(&s->head, &head, n)
。 - Michael Burr