很棒的无锁
有关无等待和无锁编程的资源集合。
来自 MattPD 的更好资源:C++ 链接:原子、无锁、内存模型。
图书馆
- Boost.Lockfree - Boost 无锁数据结构。
- ConcurrencyKit - 并发原语。
- crossbeam - 用于并发编程的 Rust 库。
- Folly - Facebook 开源库(具有 MPMC 队列的良好实现)。
- Junction - C++ 中的并发数据结构。
- MPMCQueue - 用 C++11 编写的有界多生产者多消费者无锁队列。
- SPSCQueue - 用 C++11 编写的有界单生产者单消费者无等待和无锁队列。
- Seqlock - C++ 中 Seqlock 的实现.
- 用户空间 RCU -liburcu 是一个用户空间 RCU(读取-复制-更新)库。
- libcds - 并发数据结构的 C++ 库。
- liblfds - 用 C 语言编写的可移植、免许可、无锁的数据结构库。
- xenium - 提供各种并发数据结构和回收方案的 C++ 库。
网站
- 1024cores - Dmitry Vyukov 关于无锁编程的网站。
- LMAX干扰器
- 维基百科:非阻塞算法
- 维基百科:阅读-复制-更新
- 维基百科:Seqlock
博客
- Concurrency Freaks - 致力于并发算法和模式的网站。
- Dan Luu - 有关现代计算机体系结构的大量信息。
- 锁定 Webkit
- 机械同情
- 保罗·麦肯尼
- 热衷于编程
- Sutter's Mill - Herb Sutter 谈软件开发。
- 姜保罗
图书
- 保罗·E·麦肯尼。并行编程很难吗?如果很难的话,你能做什么?
- 莫里斯·赫利希和尼尔·沙维特。多处理器编程的艺术
文件
- ARM 和 POWER 宽松内存模型的教程简介
- 保罗·E·麦肯尼。内存屏障:软件黑客的硬件视图。
- 简单、快速、实用的非阻塞和阻塞并发队列算法——Michael-Scott队列
- 乌尔里希·德雷珀.每个程序员都应该了解的内存知识
- x86-TSO:针对 x86 多处理器的严格且可用的程序员模型
会谈
- CppCon 2014:Herb Sutter“无锁编程(或杂耍剃刀刀片),第一部分”
- CppCon 2014:Herb Sutter“无锁编程(或杂耍剃刀刀片),第二部分”
- CppCon 2015:Fedor Pikus PART 1 “Live Lock-Free or Deadlock(实用无锁编程)”
- CppCon 2015:Fedor Pikus PART 2 《Live Lock-Free or Deadlock(实用无锁编程)》
- CppCon 2015:Michael Wong“C++11/14/17 原子和内存模型...”
- CppCon 2015:Paul E. McKenney“C++ 原子……”
- CppCon 2014:Tony Van Eerd“无锁示例”
- CppCon 2016:Fedor Pikus“并发速度:无锁更快吗?”
- CppCon 2016:Hans Boehm“正确使用弱有序 C++ 原子”
- CppCon 2017:Fedor Pikus “C++ 原子,从基础到高级。他们到底是做什么的?”
- CppCon 2017:Fedor Pikus “阅读、复制、更新,然后呢?适用于非内核程序员的 RCU”
- CppCon 2017:P. McKenney、M. Michael 和 M. Wong “并行编程仍然很难吗?第 1 部分(共 2 部分)”
- CppCon 2017:P. McKenney、M. Michael 和 M. Wong “并行编程仍然很难吗?第 2 部分(共 2 部分)”
- CppCon 2018:“高性能安全回收的前景和令人兴奋的新未来”
- C++ 及未来 2012 年:Herb Sutter - 原子<> 武器,第 1 卷(共 2 卷)
- C++ 及未来 2012 年:Herb Sutter - 原子<> 武器,2 of 2
- “Aeron:开源高性能消息传递”作者:Martin Thompson
- Java 并发编程的冒险:对可预测延迟的探索 - Martin Thompson
- 了解 Disruptor,硬核并发初学者指南 -Trisha Gee 和 Mike Barker
关于
该列表由 Erik Rigtorp <[email protected]> 编制。