Lockfree标准集合和教程或文章

时间:2009-11-12 22:21:58

标签: multithreading language-agnostic locking thread-safety lock-free

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

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

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

http://www.liblfds.org

用C编写。

答案 2 :(得分:2)

如果C ++对您没问题,请查看boost::lockfree。它具有无锁的Queue,Stack和Ringbuffer实现。

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

boost::lockfreeboost::atomic都不属于boost的一部分,但两者都受到了推广开发邮件列表的关注,并且正在按计划进行审核。