{"id":13584420,"url":"https://github.com/rigtorp/awesome-lockfree","last_synced_at":"2025-05-15T18:07:52.268Z","repository":{"id":37458229,"uuid":"55157150","full_name":"rigtorp/awesome-lockfree","owner":"rigtorp","description":"A collection of resources on wait-free and lock-free programming","archived":false,"fork":false,"pushed_at":"2024-02-25T00:18:35.000Z","size":28,"stargazers_count":1870,"open_issues_count":1,"forks_count":177,"subscribers_count":84,"default_branch":"master","last_synced_at":"2025-04-01T01:39:57.001Z","etag":null,"topics":["assembly","concurrency","concurrent-programming","cpp","lock-free","wait-free"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rigtorp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-03-31T14:31:00.000Z","updated_at":"2025-03-28T18:27:45.000Z","dependencies_parsed_at":"2024-03-19T21:03:03.853Z","dependency_job_id":"75f9f2c2-5267-4688-8cbe-ebe1b18e973f","html_url":"https://github.com/rigtorp/awesome-lockfree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigtorp%2Fawesome-lockfree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigtorp%2Fawesome-lockfree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigtorp%2Fawesome-lockfree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigtorp%2Fawesome-lockfree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rigtorp","download_url":"https://codeload.github.com/rigtorp/awesome-lockfree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299828,"owners_count":20916190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembly","concurrency","concurrent-programming","cpp","lock-free","wait-free"],"created_at":"2024-08-01T15:04:13.935Z","updated_at":"2025-04-08T02:35:51.959Z","avatar_url":"https://github.com/rigtorp.png","language":null,"funding_links":[],"categories":["Others","Other Lists","C++"],"sub_categories":["TeX Lists"],"readme":"# Awesome Lock-Free\n\nA collection of resources on wait-free and lock-free programming.\n\n:fire: :fire: :fire: Even better resource from [MattPD](https://github.com/MattPD): [C++ links: atomics, lock free, memory model](https://github.com/MattPD/cpplinks/blob/master/atomics.lockfree.memory_model.md).\n\n## Libraries\n\n* [Boost.Lockfree](http://www.boost.org/doc/libs/1_60_0/doc/html/lockfree.html) - Boost lock-free data structures.\n* [ConcurrencyKit](https://github.com/concurrencykit/ck) - Concurrency primitives.\n* [crossbeam](https://github.com/crossbeam-rs/crossbeam) - Rust library for concurrent programming.\n* [Folly](https://github.com/facebook/folly) - Facebook Open-source Library (has good implementation of MPMC queue).\n* [Junction](https://github.com/preshing/junction) - Concurrent data structures in C++.\n* [MPMCQueue](https://github.com/rigtorp/MPMCQueue) - A bounded multi-producer multi-consumer lock-free queue written in C++11.\n* [SPSCQueue](https://github.com/rigtorp/SPSCQueue) - A bounded single-producer single-consumer wait-free and lock-free queue written in C++11.\n* [Seqlock](https://github.com/rigtorp/Seqlock) - Implementation of Seqlock in C++.\n* [Userspace RCU](http://liburcu.org/) - liburcu is a userspace RCU (read-copy-update) library.\n* [libcds](https://github.com/khizmax/libcds) - A C++ library of Concurrent Data Structures.\n* [liblfds](https://liblfds.org/) - portable, license-free, lock-free data structure library written in C.\n* [xenium](https://github.com/mpoeter/xenium) - A C++ library providing various concurrent data structures and reclamation schemes.\n\n## Websites\n\n* [1024cores](http://www.1024cores.net/) - Dmitry Vyukov's website on lock-free programming.\n* [LMAX Disruptor](https://lmax-exchange.github.io/disruptor/)\n* [Wikipedia: Non-blocking algorithm](https://en.wikipedia.org/wiki/Non-blocking_algorithm)\n* [Wikipedia: Read-copy-update](https://en.wikipedia.org/wiki/Read-copy-update)\n* [Wikipedia: Seqlock](https://en.wikipedia.org/wiki/Seqlock)\n\n## Blogs\n\n* [Concurrency Freaks](http://concurrencyfreaks.blogspot.com/) - A web site dedicated to Concurrent algorithms and patterns.\n* [Dan Luu](http://danluu.com/) - Lots of info on modern computer architecture.\n* [Locking in Webkit](https://webkit.org/blog/6161/locking-in-webkit/)\n* [Mechanical Sympathy](http://mechanical-sympathy.blogspot.com/)\n* [Paul E. McKenney](http://paulmck.livejournal.com/)\n* [Preshing on Programming](http://preshing.com/)\n* [Sutter's Mill](http://herbsutter.com/) - Herb Sutter on software development.\n* [Paul Khuong](https://www.pvk.ca/Blog/archives/)\n\n## Books\n\n* *Paul E. McKenney*. [Is Parallel Programming Hard, And, If So, What Can You Do About It?](https://www.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html)\n* *Maurice Herlihy and Nir Shavit*. [The Art of Multiprocessor Programming](https://dl.acm.org/citation.cfm?id=2385452)\n\n## Papers\n\n* [A Tutorial Introduction to the ARM and POWER Relaxed Memory Models](http://www.cl.cam.ac.uk/~pes20/ppc-supplemental/test7.pdf)\n* *Paul E. McKenney*. [Memory Barriers: a Hardware View for Software Hackers](http://irl.cs.ucla.edu/~yingdi/web/paperreading/whymb.2010.06.07c.pdf).\n* [Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms](https://www.cs.rochester.edu/u/scott/papers/1996_PODC_queues.pdf) - The Michael - Scott Queue\n* *Ulrich Drepper*. [What Every Programmer Should Know About Memory](https://www.akkadia.org/drepper/cpumemory.pdf)\n* [x86-TSO: A Rigorous and Usable Programmer’s Model for x86 Multiprocessors](http://www.cl.cam.ac.uk/~pes20/weakmemory/cacm.pdf)\n\n## Talks\n\n* [CppCon 2014: Herb Sutter \"Lock-Free Programming (or, Juggling Razor Blades), Part I\"](https://www.youtube.com/watch?v=c1gO9aB9nbs)\n* [CppCon 2014: Herb Sutter \"Lock-Free Programming (or, Juggling Razor Blades), Part II\"](https://www.youtube.com/watch?v=CmxkPChOcvw)\n* [CppCon 2015: Fedor Pikus PART 1 “Live Lock-Free or Deadlock (Practical Lock-free Programming)\"](https://www.youtube.com/watch?v=lVBvHbJsg5Y)\n* [CppCon 2015: Fedor Pikus PART 2 \"Live Lock-Free or Deadlock (Practical Lock-free Programming)\"](https://www.youtube.com/watch?v=1obZeHnAwz4)\n* [CppCon 2015: Michael Wong “C++11/14/17 atomics and memory model...\"](https://www.youtube.com/watch?v=DS2m7T6NKZQ)\n* [CppCon 2015: Paul E. McKenney “C++ Atomics...\"](https://www.youtube.com/watch?v=ZrNQKpOypqU)\n* [CppCon 2014: Tony Van Eerd \"Lock-free by Example\"](https://www.youtube.com/watch?v=Xf35TLFKiO8)\n* [CppCon 2016: Fedor Pikus \"The Speed of Concurrency: is lock-free faster?\"](https://www.youtube.com/watch?v=9hJkWwHDDxs)\n* [CppCon 2016: Hans Boehm “Using weakly ordered C++ atomics correctly\"](https://www.youtube.com/watch?v=M15UKpNlpeM)\n* [CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”](https://www.youtube.com/watch?v=ZQFzMfHIxng)\n* [CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”](https://www.youtube.com/watch?v=rxQ5K9lo034)\n* [CppCon 2017: P. McKenney, M. Michael \u0026 M. Wong “Is Parallel Programming still hard? PART 1 of 2”](https://www.youtube.com/watch?v=YM8Xy6oKVQg)\n* [CppCon 2017: P. McKenney, M. Michael \u0026 M. Wong “Is Parallel Programming still hard? PART 2 of 2”](https://www.youtube.com/watch?v=74QjNwYAJ7M)\n* [CppCon 2018: “The Landscape and Exciting New Future of Safe Reclamation for High Performance”](https://www.youtube.com/watch?v=nvfzQAUpunI)\n* [C++ and Beyond 2012: Herb Sutter - atomic\u003c\u003e Weapons, 1 of 2](https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2)\n* [C++ and Beyond 2012: Herb Sutter - atomic\u003c\u003e Weapons, 2 of 2](https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2)\n* [\"Aeron: Open-source high-performance messaging\" by Martin Thompson](https://www.youtube.com/watch?v=tM4YskS94b0)\n* [Adventures with Concurrent Programming in Java: A Quest for Predictable Latency - Martin Thompson](https://www.youtube.com/watch?v=eKVpea51tvo)\n* [Understanding the Disruptor, a Beginner's Guide to Hardcore Concurrency -Trisha Gee \u0026 Mike Barker](https://www.youtube.com/watch?v=DCdGlxBbKU4)\n\n## About\n\nThis list was compiled by [Erik Rigtorp](http://rigtorp.se)\n\u003c[erik@rigtorp.se](mailto:erik@rigtorp.se)\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigtorp%2Fawesome-lockfree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frigtorp%2Fawesome-lockfree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigtorp%2Fawesome-lockfree/lists"}