Book Image

Concurrency with Modern C++

By : Rainer Grimm
Book Image

Concurrency with Modern C++

By: Rainer Grimm

Overview of this book

C++11 is the first C++ standard that deals with concurrency. The story goes on with C++17 and will continue with C++20/23. Concurrency with Modern C++ is a practical guide that gets you to grips with concurrent programming in Modern C++. Starting with the C++ memory model and using many ready-to-run code examples, the book covers everything you need to improve your C++ multithreading skills. You'll gain insight into different design patterns. You'll also uncover the general consideration you have to keep in mind while designing a concurrent data structure. The final chapter in the book talks extensively about the common pitfalls of concurrent programming and ways to overcome these hurdles. By the end of the book, you'll have the skills to build your own concurrent programs and enhance your knowledge base.
Table of Contents (19 chapters)
Free Chapter
1
Reader Testimonials
19
Index

The simplified Overview

My simplified overview of CppMem is based on the default configuration. This overview only provides you with the base for further experiments and should help you to understand my process of ongoing optimisation.

The default configuration of CppMem
The default configuration of CppMem

For the sake of simplicity, I refer to the red numbers in the screenshot.

1. Model

  • Specifies the C++ memory model. preferred is a simplified but equivalent variant of the C++11 memory model.

2. Program

  • Contains the executable program in a simplified C++11 like syntax. To be precise, you cannot directly copy C or C++ code programs into CppMem.
  • You can choose between many programs that implement typical multithreading scenarios. To get the details of these programs read the very well written article Mathematizing C++ Concurrency. Of course, you can also run your code.
  • CppMem is about multithreading; therefore, there are shortcuts for multithreading available.
    • You can easily...