Nicolai M. Josuttis: IT-Communication    Training: C++ Developers Workshop

prev prev next

Title: Multi-Threading and Concurrency Programming Workshop  
Audience: Software developers, programmers
Format: Inhouse training full of live coding converting a single-threaded into a multi-threaded one
Background: Programming in C++
Duration: 1 day
   
Contents:

Multi-threading is a key approach to scale programs. However, dealing with multiple threads is also a source of trouble. Running code in parallel is great as long as this code doesn't need concurrent access to the same objects and synchronization. With concurrency, care must be taken to ensure that multiple threads is not counter-productive. As usual, usings C++ as a language brings additional challenges.

In this workshop we will experience the basics of multi-threading and concurrency on a full program of significant size. By start with a pretty simple single-threaded program, which reads and writes sequentially, and perform live-programming to convert it into a well-working multi-thereaded program reading and writing in parallel.

During this change you will see the issues and pain that can occur when using multiple threads and learn how to deal with them. In fact, you will learn how to start threads in C++, how to deal with exceptions, how to synchronize code (using mutexes and atomics), and how to deal with synchronization (using condition variables). This all is discussed while falling intro traps and solve issues step by step.

The workshop is a helpful experience to understand multi-threading and concurrency way better and learn how to benefit from the various C++ features for multi-threaded programming.

The training can be tailored according to your current context, knowledge, and interests.

   
Themen:
  • Multi-threading and concurrency in general
  • Memory models
  • Alignment of data
  • Key problems of multi-threading
  • Starting threads with std::thread
  • Using std::jthread and stop tokens
  • Using mutexes and lock guards in C++
  • Shared locks
  • Using atomics in C++
  • Atomic references
  • Using condition variables in C++
  • Dealing with synchronized output
  • Other concurrency features of C++20 (semaphores, barriers, latches)
   
Trainer:

Nicolai M. Josuttis is an well-known international author, trainer, speaker, and expert of C++.

He has written several books on object-oriented programming and C++, including the including the best selling de-facto standards The C++ Standard Library - A Tutorial and Reference, C++ Templates - The Complete Guide, C++17 - The Complete Guide, C++20 - The Complete Guide, and C++ Move Semantics - The Complete Guide.

He is an active member of the C++ Standard Committee since 1996.

   
Public: This training is only available as an Inhouse training
Inhouse:

Contact Nicolai Josuttis
Tel.: +49 531 129 8886
E-Mail: training@josuttis.com
Of course, the tutorial can get customized according to your needs.

prev prev next


Copyright 2025 by Nicolai M. Josuttis
Impressum    Datenschutzerklärung