是否有人知道无锁常用数据类型的实现(指源代码)一个很好的资源。我想列表,队列等的?

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

有帮助吗?

解决方案

查看朱利安中号巴克纳尔的博客。他描述了(详细)队列,列表,堆栈,无锁的实现等

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

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

其他提示

如果C ++是与你没关系,看看的boost :: lockfree 。它具有无锁队列,栈和Ringbuffer实现。

boost::lockfree::details部分,你会发现一个无锁空闲列表和标签指针(ABA预防)的实施。你还会看到通过的boost ::原子 (仍在开发中的版本的C ++ 0x std::atomic的)。

这两个boost::lockfreeboost::atomicboost的一部分还没有,但无论从升压开发邮件列表看到的关注,并在日程安排进行审查。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top