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 Near Future: C++20

Concurrency in C++20
Concurrency in C++20

In June 2019, the C++20 standard is worked out. Here are the features, we will get.

std::jthread

std::jthread is a enhanced replacement for std::thread. In addition to std::thread, a std::jthread can signal an interrupt and can automatically join the started thread.

Atomic Smart Pointers

The smart pointer std::shared_ptr and std::weak_ptr have a conceptional issue in concurrent programs. They share intrinsically mutable state; therefore, they are prone to data races and thus, leading to undefined behaviour. std::shared_ptr and std::weak_ptr guarantee that the incrementing or decrementing of the reference counter is an atomic operation and the resource is deleted exactly once, but neither of them can guarantee that the access to its resource is atomic. The new atomic smart pointers std...