C++ Concurrency, 2 days (with exercises)
- "How can I employ all the cores of my CPU?"
- "How does C++11/14 help me with concurrency and parallelism?"
- "Which synchronization mechanisms exist in C++?"
- "How can I avoid race conditions?"
- "How does the STL work with concurrency and in parallel?"
In many modern systems several threads run at once.
These must be synchronized to avoid bad surprises.
Also, modern processors often have more than one core and it would be
a waste not to use them.
But synchronization errors typically are very hard to debug.
C++11/14 provide mechanisms to ease the handling and synchronization
of several threads. Modern C++ also provides mechanisms to use multiple cores
safely without explicit synchronization.
In C++ Concurrency you'll learn when and how to synchronize
parallel and concurrent threads.
You know the mechanisms of C++11/14 and beyond to exploit the multiple cores in
You apply the tools that the standard libraries and others provide
to run several threads easily and clearly.
C++ programmers, library developers, system designers
You know the details of C++11 (as presented in the seminars
C++ Advanced or C++ 11/14)
and used them for some time.
- Concurrency vs. parallelism
- Futures and async
- Processes and threads
- Synchronization problems
- The memory model and its implications
- Synchronization mechanisms
- Mutex and semaphor
- C++11/C++14 mechanisms
- Beyond C++14
- Atomics and their problems
- Design patterns for concurrency and parallism
- Libraries: existing and future building blocks
C++ Concurrency is a hands-on seminar.
A substantial part of the programme consists of programming exercises.
You'll learn with real-word examples how to use and design concurrency and
parallelism in your systems and synchronize them correctly and efficiently.
Seminars on Similar Topics:
- C++ Advanced
- The base for this seminar
- C++ 11/14
- Update to C++11/14
- C++ Embedded
- Parallel threads of control in embedded systems
- OO Design Patterns
- Standard solutions for parallelism and concurrency
- OO Design
- How to create complex parallel systems