使用无锁编程深层次的高级抽象不受欢迎的原因是什么?

NoS*_*tAl 12 queue boost lock-free concurrent-programming

从我在锁定免费编程上收集到的内容来看,这是非常难以做到的......我同意.只是想一些问题会让我头疼.但我想知道的是,为什么没有广泛使用高级包装器(例如无锁队列和类似的东西)?例如,boost没有锁定免费库,但据我所知,有人建议使用.我的意思是我猜有很多应用程序,你不能避免关键部分是负载的重要部分.那么原因是什么?是吗...

  1. 专利 - 我听说一些与无锁编程相关的东西已获得专利.
  2. 性能.
  3. 谷歌和微软都有像这样的内部库,但没有一个是公开的......
  4. 别的什么?

所以我的问题是:为什么使用无锁编程的高级抽象不是很受欢迎,而同时"常规"多线程编程是"在"?

编辑:boost有一个无锁lib :)

小智 13

很少有人熟悉该领域以实现易于使用的无锁库.在少数几个中,免费的发布工作更少,而且几乎没有任何人发布使图书馆可用的重要额外工作- 例如发布完整的API文档等.他们倾向于只发布带有代码的zip文件,这几乎是无用的.当然,你还需要找到一个用你想要使用的语言编写的库,在你正在使用的平台上编译,最后,图书馆的文字必须出来,所以人们都知道它存在.

专利是一个问题,因为它们限制了可以提供的东西.例如,据我所知,没有非专利的单链表.所有跳过列表的东西也都获得了大量专利.

这个领域的英雄是Cliff Click,他提出了一个无锁的哈希,他或多或少地在公共领域.

你可以在这里找到我的无锁图书馆;

http://www.liblfds.org

另一个是Samy Bahra的Concurrency Kit;

http://www.concurrencykit.org