从我在无锁编程中收集到的信息来看,要正确地做是非常困难的……我同意。
光是想一些问题就头疼。但我想知道的是,为什么不是
有广泛使用的高级包装器(例如无锁队列和类似的东西)?
例如 boost 没有无锁库,尽管据我所知有人建议。
我的意思是我猜有很多应用程序你无法避免关键的事实
部分是负载的很大一部分。那么有哪些原因呢?是吗...
所以我的问题是:为什么使用无锁编程的高级抽象不是很深入
流行,同时“常规”多线程编程是否“流行”?
编辑:boost 有一个无锁库 :)
最佳答案
很少有人对该领域足够熟悉来实现易于使用的无锁库。在这少数人中,甚至更少的免费发布作品,并且几乎没有人做重要的额外工作以使图书馆可用 - 例如。发布完整的 API 文档等。他们倾向于只发布一个包含代码的 zip 文件,这几乎没用。然后当然你还需要找到一个用你想要使用的语言编写的库,在你正在使用的平台上编译,最后,这个库的词必须出去,所以人们知道它存在。
专利是一个问题,因为它们限制了可以提供的内容。例如,据我所知,没有未获得专利的单链表。所有跳过列表的东西也都获得了大量专利。
该领域的英雄是 Cliff Click,他提出了一个无锁哈希,他或多或少地将其置于公共(public)领域。
你可以在这里找到我的无锁库;
http://www.liblfds.org
另一个是 Samy Bahra 的并发工具包;
http://www.concurrencykit.org
关于boost - 深入使用无锁编程的高级抽象不流行的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8400114/