您可以查看libcds C++ 库。它是无锁容器(堆栈、队列、集合和映射)和安全内存回收算法的集合。
恕我直言,关于 C++(我对其他语言并不先进)。新的 C++ 标准刚刚发布,编译器开发人员需要时间来实现其要求。如今,并非所有编译器都完全支持 C++11 内存模型,因为它需要对编译器的优化规则进行重大更改。最近,Microsoft 宣布支持原子操作,这是 VC++ 11 Developer Preview 中无锁编程的基础。这对我们来说是个好消息。据我所知,GCC 将在 4.8(或更高版本)中支持它。
第二个问题是专利。许多有趣的无锁容器算法都获得了专利,这是将它们包含到供应商库中的障碍。
第三,无锁容器的主要部分是垃圾收集(安全内存回收)。C++ 没有任何 GC(幸运的是)。有一些 GC 算法(Hazard Pointer、Pass-the-Buck、epoch-based 等),但其中大多数也获得了专利。
第四,没有足够的工具来证明在你的无锁实现中应用的内存栅栏的正确性。现在我只知道一个——relacy (http://www.1024cores.net/home/relacy-race-detector)。
我认为 2-3 年后,我们将看到许多生产就绪的多平台 C++ 无锁容器和算法库。这些库是由供应商和爱好者开发的。
但是,在我看来,我们的未来是硬件事务存储器(HTM)。今天 AMD、Sun(对不起,Oracle)、英特尔(?)正在研究 HTM,结果非常有趣。我们等等吧。