Multithreading with 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.


This class gives you a detailed insight into the multithreading facilities of C++11 and C++14, and the parallel algorithms which we got with C++17. If possible, we will have a more in-depth look into the C++ memory model consisting of the atomics and the various memory models in C++. This insight will provide you with a better understanding of the general concurrency features of C++.


Participants should have a basic knowledge of the C++ language and the fundamentals of multithreading. In the class, I will give you a concise introduction to the topic. This introduction provides the starting point for the exercises; therefore, you should bring your laptop with you including a C++11 or C++14 compiler. You will get in return the training material consisting of the presentation, the exercises, and the solutions to the exercises.



  • Threads
  • Shared Data
    • Mutexes and Locks
    • Thread-safe Initialisation
  • Thread-Local Data
  • Condition Variables
  • Tasks (Promises and Futures)

The Memory Model

  • The Contract
  • Atomics
  • The Synchronisation and Ordering Constraints -- Sequential Consistency -- Acquire-Release Semantic -- Relaxed Semantic

Parallel Algorithms of the Standard Template Library (C++17)

  • Execution Policies
  • Algorithms -- The New Algorithms

Platinum sponsor

Gold sponsors

Silver sponsors

Community sponsors