如何用c ++ 11 CAS實現(xiàn)ABA計數(shù)器?我正在實現(xiàn)一個基于此算法的無鎖隊列,該算法使用計數(shù)器來解決ABA問題。但我不知道如何用c ++ 11 CAS實現(xiàn)這個計數(shù)器。例如,從算法:E9: if CAS(&tail.ptr->next, next, <node, next.count+1>)它是一個原子操作,意思是如果tail.ptr->next等于next,則tail.ptr->next指向node并同時(原子地)產(chǎn)生next.count+1。但是,使用C ++ 11 CAS,我只能實現(xiàn):std::atomic_compare_exchange_weak(&tail.ptr->next, next, node);這不可能next.count+1同時發(fā)生。
- 1 回答
- 0 關注
- 443 瀏覽
添加回答
舉報
0/150
提交
取消