4

有人知道无锁常用数据类型的实现(意思是源代码)的好资源吗?我在考虑列表、队列等?

锁定实现非常容易找到,但我找不到无锁算法的示例以及 CAS 如何准确工作以及如何使用它来实现这些结构。

4

3 回答 3

4

查看 Julian M Bucknall 的博客。他(详细)描述了队列、列表、堆栈等的无锁实现。

http://www.boyet.com/Articles/LockfreeQueue.html

http://www.boyet.com/Articles/LockfreeStack.html

于 2009-11-12T22:24:43.690 回答
2

http://www.liblfds.org

写在 C 中。

于 2009-11-24T20:29:39.273 回答
2

如果 C++ 适合您,请查看boost::lockfree。它具有无锁队列、堆栈和环缓冲区实现。

在本boost::lockfree::details节中,您将找到一个无锁空闲列表和标记指针(ABA 预防)实现。您还将看到通过boost::atomic(C++0x 的开发中版本std::atomic)进行显式内存排序的示例。

两者boost::lockfreeboost::atomic还不是其中的一部分boost,但两者都受到了 boost-development 邮件列表的关注,并且都在进行审查。

于 2010-02-02T11:46:08.170 回答