do{
old_head = queue->head;
new_head->next = old_head;
if (old_head == queue->head){
queue->head = new_head;
}
}while(queue->head != new_head)
非阻塞栈、链表实现(JAVA简单版):Java 理论与实践: 非阻塞算法简介
非阻塞栈实现(C++11版本,带ABA检验):C11 Lock-free Stack +
代码库 +
std::atomic::compare_exchange_weak()探究
Lock-Free的双向队列(deques)实现:CAS-Based Lock-Free Algorithm for Shared Deques
Lock-Free的map实现:Lock-Free Data Structures