C++ Multithreading

Who should attend?

Software developers, software architects.


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.


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:


  • 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)


We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.