Concurrency with Modern C++ is a three-day online training course with programming examples taught by Rainer Grimm. It is offered online from 09:00 to 15:00 Aurora time (MDT), 11:00 to 17:00 EDT, 17:00 to 23:00 CET, Wednesday, October 20th through Friday, October 22nd, 2021 (before the conference).
Course Description
This class gives you a detailed insight into the multithreading facilities of C++11 and C++14, the parallel algorithms which we got with C++17, and the new way of concurrency, we will get with high probability in C++20.
Additionally, we will have a more in-depth look into the C++ memory model consisting of the atomics and the various memory orders in C++. This insight will provide you with a better understanding of the general concurrency features of C++.
Prerequisites
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.
Course Topics
- Multithreading
- 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
- std::memory_order_consume
- Relaxed Semantic
- Parallel Algorithms of the Standard Template Library (C++17)
- Execution Policies
- Algorithms
- The New Algorithms
- C++20
std::jthread
- Atomic Smart Pointers
- Latches and Barriers
- Coroutines
- Semaphores
Register Here
Course Instructor
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 on Modern C++ and Python. His books “C ++ 11 für Programmierer”, “C ++”, “C ++ – Standardbiliothek” , “The C++ Standard Library” and “Concurrency with Modern C++” were published by O’Reilly and Leanpub.