C++ Multithreading
Who should attend?
Software developers, software architects.
Pre-requisites:
A good working knowledge of C++98 (including templates). Knowledge of C++11 features is beneficial but not a requirement for this course. Please refer to the course "Modern C++" for the other features of the C++11/C++14/C++17/C++20 language standards.
Duration:
3 days ( including practical exercises )
Course Description:
Since the introduction of the C++11 language standard, multithreading and multicore applications can be developed in a platform-independent manner directly in C++. This training shows the C++ multithreading features introduced by C++11, C++14 and C++17 and explains how they can be used. Due to the rapid growth of the number of multicore systems this training is valuable especially for software developers who want to speedup their applications by exploiting the power of multiple cores.
Course Outline:
Introduction
- Multithreading Basics
- Threading Models
- Singlecore and Multicore Systems
- Concurrency and Parallel Execution
Thread Management
- Thread Creation
- Parameter Passing
- Thread Identification
- Background Threads
- Thread Control
- Thread Termination
Time Management
- Absolute / Relative Times
- Timeouts
Threadsafe Use of Resources
- Threadsafe Initialisation
- Thread Local Storage
- Atomic Memory Access
- Mutexes
- Locks
- Deadlocks
- Condition Variables
- Non-Blocking Resource Access
Asynchronous Operations
- Futures
- Promises
- Packaged Tasks
- async
Practical Exercises (Optional)