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 language standards.

Duration:

2 days   ( optionally this course can be extended by one day for 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 and C++14 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)

 

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.