HACKER Q&A
📣 atmcs

How to learn advanced C++ (atomics, memory ordering, etc.)


I want to learn the details of lock free programming, atomics, memory ordering, etc. I've been writing concurrent code in C++ for a long time, but not in an environment where I had to think about the memory model.

The problem is I haven't found much structured content on this. Is there a good book or class syllabus dedicated to this subject?

At this point I'm just piecing together CppCon talks on youtube and blog posts.


  👤 ecehokie Accepted Answer ✓
Hello, Virginia Tech offers an online graduate course called "ECE/CS 5510 Multiprocessor Programming". It specifically focuses on addressing your exact question within this course and aims to help you understand the multithreaded programming concepts from the hardware level up to the software level.

I am just starting this course, but the first lecture looked promising and VT hasn't disappointed me with its ECE courses focused on programming yet.

Here's the book we will be using for the course: https://www.elsevier.com/books/the-art-of-multiprocessor-pro...