Concurrency With Modern C++

Concurrency with Modern C++ is a two-day training course with programming examples taught by Rainer Grimm. It is offered onsite at the Gaylord Rockies from 09:00 to 17:00 on Saturday, October 23rd and and Sunday, October 24th, 2021 (immediately prior to the conference). Lunch is included.

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 GrimmRainer 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.