Best Practices for Concurrency in Modern C++

Rainer Grimm

Rainer Grimm has worked as a software architect, team lead and instructor for about 20 years. In his spare time he likes to write articles about C++, Python and Haskell, but he also likes to speak at conferences. He publishes very often on his blog "Modern C++".
Now he is a trainer giving seminars to modern C++ and Python. His books "C++11 für Programmierer ", "C++" and "C++ - Standardbiliothek" , and the "The C++ Standard Library" were published by O'Reilly and Leanpub.

With the standardisation of C++11, we got in C++ a multithreading library and a memory model. The library has the basic building blocks such as atomics, threads, tasks, locks, and condition variables. The memory model provides guarantees for the thread-safe usage of this basic building blocks.

Seven years later, we have a lot of best practices to apply multithreading and the memory model in a safe way. My talk will be precisely about these best practices to general rules for concurrency, special rules for the multithreading library, and special rules for the memory model. The focus of this best practices will be far beyond C++.