Concurrency Tools in the C++ Standard Library
A Hands-On Workshop
Available to book as a 1 day online workshop on the following dates
Today, C++ software is increasingly asynchronous and parallel, a trend that is likely only to continue going forward. The C++ standard acknowledged threads and provided the first concurrency facilities with C++11. The set of primitives and lower-level building blocks was greatly extended in C++20 with many powerful abstractions.
During this training, we will learn the concurrency utilities in the C++ Standard Library. We will also explain how new C++20 features improve the "old" abstractions we got before. We will talk about threads, mutexes, deadlocks, work cancellation, semaphores, latches, barriers, and many more. We will also introduce a few higher-level abstractions (e.g., concurrent_queue and monitor design pattern).
What You Will Learn?
After completing this workshop, you will have a broad understanding of the various concurrency features in the C++ Standard Library. You will be able to pick a proper tool for a job easily. Thanks to the hands-on practical experience with the most important tools, you will learn how to think and type the code that solves specific issues. This will allow you to improve your production code base immediately after the training is over.
Workshop Structure
- 40% lecture
- 60% hands-on coding
Experience required
- Basic experience with C++11 concurrency facilities in the C++ standard library.
Environment
- A laptop with a web browser and access to the Internet
- All hands-on exercises will be implemented using Compiler Explorer
Outline
- Different kinds of concurrency
- Parallelism vs Concurrency
- Parallel algorithms
- Synchronized buffered ostreams
std::threadstd::jthreadandstd::stop_token- Mutexes
- Structuring code for protecting shared data
- Locks
- Deadlocks
- Monitor design pattern
std::call_onceandstd::once_flagstd::condition_variable- concurrent_queue
- Semaphores
std::latchstd::barrier- Futures
std::asyncstd::packaged_taskstd::promise

Mateusz Pusz
Mateusz is a software architect, principal engineer, and security champion with over 20 years of experience designing, writing, and maintaining C++ code for fun and for a living. His main areas of interest and expertise are Modern C++, code performance, low latency, safety, and maintainability.
As the founder of Train IT, Mateusz provides dedicated C++ training and consulting services to corporations worldwide, drawing on over 15 years of teaching experience. He contributes to the industry as a conference speaker and as an active voting member of the ISO C++ Committee (WG21), where he helps shape the language's future alongside the world's top experts.
Committed to software safety, Mateusz is also the founder and primary author of the mp-units project, an open-source library that strives to make the world safer by ensuring the correct handling of physical quantities in software.
Attend The Workshop Taster - 11th - 13th March
If you are unsure or want a better understanding of how the workshop works in practice, then you can attend a taster session for this workshop by purchasing a ticket for the main conference which will run over 3 days from 11th-13th March and which will feature over 25 C++ talks.
You can upgrade your main conference ticket to a workshop ticket at no extra cost compared to purchasing the workshop ticket directly!
The workshop taster is designed to provide you with a preview/overview of this workshop where you will also have an opportunity to ask questions. In addition, the workshop preview will be made available on-demand for you to watch at your own convenience.
Register For The Workshop!
Alternatively, if you already believe this workshop is right for you, then you can register for the workshop now by purchasing one of the tickets below
All workshop tickets also include FREE access to the C++Online Main Conference running March 11th-13th and which will feature over 25 talks.
If you want to attend MORE than one workshop, then please purchase your tickets from the registration page
Privacy Notice
Please note that the email address that you use for registration will be shared with the instructor so that if needed they can contact you on matters relating to the workshop before, during or after it takes place.
Cancellation Policy
Purchased tickets may be cancelled for a full refund, less a 5% processing fee, up to four weeks before the event.
From four weeks to five days before the event the cancellation fee is 40%.
During the last five days before the event the cancellation fee is 80%.
If you have any questions or need more information regarding anything relating to ticketing, please contact info@cpponline.uk
Payment methods
Ticketing is provided by Tito and credit card processing by Stripe. Please note that all ticket sales using this form include UK VAT. For alternate payment methods, or invoices, please contact us.
If you are paying on behalf of an EU or EC company with a reverse charge VAT arrangement with the UK then it is especially important to contact us first.













