awesome-lockfree

Programming library

A collection of resources on wait-free and lock-free programming

A collection of resources on wait-free and lock-free programming

GitHub

2k stars
83 watching
170 forks
last commit: 9 months ago
Linked from 1 awesome list

assemblyconcurrencyconcurrent-programmingcpplock-freewait-free

Awesome Lock-Free / Libraries

Boost.Lockfree Boost lock-free data structures
ConcurrencyKit 2,388 2 months ago Concurrency primitives
crossbeam 7,449 13 days ago Rust library for concurrent programming
Folly 28,434 6 days ago Facebook Open-source Library (has good implementation of MPMC queue)
Junction 1,408 about 4 years ago Concurrent data structures in C++
MPMCQueue 1,196 9 months ago A bounded multi-producer multi-consumer lock-free queue written in C++11
SPSCQueue 913 11 months ago A bounded single-producer single-consumer wait-free and lock-free queue written in C++11
Seqlock 188 4 months ago Implementation of Seqlock in C++
Userspace RCU liburcu is a userspace RCU (read-copy-update) library
libcds 2,566 about 1 year ago A C++ library of Concurrent Data Structures
liblfds portable, license-free, lock-free data structure library written in C
xenium 488 12 months ago A C++ library providing various concurrent data structures and reclamation schemes

Awesome Lock-Free / Websites

1024cores Dmitry Vyukov's website on lock-free programming
LMAX Disruptor
Wikipedia: Non-blocking algorithm
Wikipedia: Read-copy-update
Wikipedia: Seqlock

Awesome Lock-Free / Blogs

Concurrency Freaks A web site dedicated to Concurrent algorithms and patterns
Dan Luu Lots of info on modern computer architecture
Locking in Webkit
Mechanical Sympathy
Paul E. McKenney
Preshing on Programming
Sutter's Mill Herb Sutter on software development
Paul Khuong

Awesome Lock-Free / Books

Is Parallel Programming Hard, And, If So, What Can You Do About It?
The Art of Multiprocessor Programming

Awesome Lock-Free / Papers

A Tutorial Introduction to the ARM and POWER Relaxed Memory Models
Memory Barriers: a Hardware View for Software Hackers .
Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms The Michael - Scott Queue
What Every Programmer Should Know About Memory
x86-TSO: A Rigorous and Usable Programmer’s Model for x86 Multiprocessors

Awesome Lock-Free / Talks

CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part I"
CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part II"
CppCon 2015: Fedor Pikus PART 1 “Live Lock-Free or Deadlock (Practical Lock-free Programming)"
CppCon 2015: Fedor Pikus PART 2 "Live Lock-Free or Deadlock (Practical Lock-free Programming)"
CppCon 2015: Michael Wong “C++11/14/17 atomics and memory model..."
CppCon 2015: Paul E. McKenney “C++ Atomics..."
CppCon 2014: Tony Van Eerd "Lock-free by Example"
CppCon 2016: Fedor Pikus "The Speed of Concurrency: is lock-free faster?"
CppCon 2016: Hans Boehm “Using weakly ordered C++ atomics correctly"
CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”
CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”
CppCon 2017: P. McKenney, M. Michael & M. Wong “Is Parallel Programming still hard? PART 1 of 2”
CppCon 2017: P. McKenney, M. Michael & M. Wong “Is Parallel Programming still hard? PART 2 of 2”
CppCon 2018: “The Landscape and Exciting New Future of Safe Reclamation for High Performance”
C++ and Beyond 2012: Herb Sutter - atomic<> Weapons, 1 of 2
C++ and Beyond 2012: Herb Sutter - atomic<> Weapons, 2 of 2
"Aeron: Open-source high-performance messaging" by Martin Thompson
Adventures with Concurrent Programming in Java: A Quest for Predictable Latency - Martin Thompson
Understanding the Disruptor, a Beginner's Guide to Hardcore Concurrency -Trisha Gee & Mike Barker

Backlinks from these awesome lists:

More related projects: