Concurrency with Modern C++
- Code:
- 19
- Location:
- Online seminar / face-to-face seminar
Description
Duration
- 4 * 1/2 day or 2 * 1 day
Accompanying literature
- Each participant gets one of my digital or printed books.
Method
- Theory and praxis with many exercises. You get the source code and the solutions to the exercises.
- You need a computer with at least a C++11 compiler.
Objectives
- Learn the safe usage of multihreading in C++
- Get a basic knowledge of the memory model
- Peek into the future with C++20/23
Standard
- C++11/14/17 standard
Content
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
The Near Future: C++20
- std::jthread
- Atomic Smart Pointers
- Latches and Barriers
- Coroutines
- Semaphores
The Future: C++23
- Executors
- Extended Futures
- Transactional Memory
- Task Blocks
Conditions of participation:
The general terms and conditions are found in the GT&C.