Skip to main content

C++ Multithreading

Who should attend?

Software developers who want to use the possibilities of the C++ library to develop multithreaded applications. Due to the ever-increasing spread of multicore systems, this training is particularly suitable for developers who want to parallelize their applications in order to benefit from the performance increase of additional processor cores.

Prerequisites

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

Starting with 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 Shared 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

Put what you have learned into practice immediately.


The course content is not quite what you are looking for?


What customers say:

"Well-structured from a teaching perspective, and executed with absolute precision!"
"Excellent course instruction!"
"Pleasantly calm, knowledgeable, and open to questions."
"I really liked the explanation of the background."
"With 'Design Patterns for Embedded Systems,' Mr. Nieratschker has developed a highly informative, interactive, and engaging training course. Thanks to the puzzle questions that build on one another, the course feels like a mental scavenger hunt: the Da Vinci Code for programmers."
"I've never taken a course that was so perfectly structured!!! SKT++."
"Clear, visual explanations and a lot of patience when it comes to practical applications."
"A must-read for every object-oriented programmer!"
"A very good approach to deriving the patterns."
"All participants were 'brought up to speed,' since their levels of knowledge varied greatly."
"It really helped me make progress."
"Very good, practical examples."
"The instructor knows how to engage the students."
"Complex topics explained in a way that's super easy to understand."
"Knowledge of the instructor far above the trained theme!"
"The thing I liked most was the instructor's teaching skills!"
"The things I liked most were the teacher's clarity both in presentation and spoken English."
"Examples from real world, not like e.g. wikipedia."
"We were 'forced' to think ... Our attention was up all the time, which was great."
"What I liked in particular was the deep knowledge of the instructor and the sense of humor."
"What I liked in particular was the way we discovered patterns."

SKT Nieratschker · Karl Nieratschker · Joseph-Maria-Lutz-Str. 7 · D-85293 Reichertshausen · Tel. +49 (0) 8441 490210 · office@skt-nieratschker.com