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

Active Object

The Active Object design pattern decouples method execution from method invocation for objects that each reside in their thread of control. The goal is to introduce concurrency, by using asynchronous method invocation and a scheduler for handling requests. Wikipedia: Active object. This pattern is also known as Concurrent Object.

Here are more details on the Active Object. The method invocation of the client goes to a proxy, which represents the interface of the Active Object. The servant provides the implementation of the Active Object, which runs in the separate thread. At run-time, the proxy transforms the invocation into a method invocation on the servant. This method invocations are enqueued in an activation list by the scheduler. A scheduler’s event loop runs in the same thread as the servant, dequeues the method invocations from the activation list and dispatches them on the servant. The client obtains the result via a future from the proxy.

Components

...