有没有人知道一个很好的资源来实现无锁的普通数据类型(也就是源代码)。我在想列表,队列等等?
锁定实现非常容易找到,但我找不到无锁算法的示例,也找不到CAS如何工作以及如何使用它来实现这些结构。
发布于 2009-11-13 06:24:44
看看朱利安·M·巴克纳尔的博客。他(详细地)描述了队列、列表、堆栈等的无锁实现。
http://www.boyet.com/Articles/LockfreeQueue.html
http://www.boyet.com/Articles/LockfreeStack.html
发布于 2009-11-25 04:29:39
http://www.liblfds.org
用C编写。
发布于 2010-02-02 19:46:08
如果你对C++没意见,看看boost::lockfree吧。它有无锁的Queue、Stack和Ringbuffer实现。
在ABA节中,您将找到一个无锁的自由列表和标记指针( boost::lockfree::details
预防)实现。您还将看到通过boost::atomic ( C++0x std::atomic
的开发中版本)进行显式内存排序的示例。
boost::lockfree
和boost::atomic
都还不是boost
的一部分,但它们都受到了boost-development邮件列表的关注,并在计划中进行审查。
https://stackoverflow.com/questions/1725827
复制相似问题