C++ Concurrency in Action: Practical Multithreading
by Anthony Williams

C++ Concurrency in Action is the definitive reference and guide to the new C++11 Standard. It is suitable for experienced C++ programmers as well as those who have never written multithreaded code. This book will show you how to write robust multithreaded applications in C++ while avoiding many common pitfalls.

It's not just the best current treatment of C++11's threading facilities ... it's likely to remain the best for some time to come.Scott Meyers

Overview

Systems with multiple processors or processors with multiple cores are the norm these days; even many phones have multicore processors. To take advantage of these processor cores you need to use concurrency, either in the form of multiple processors or multiple threads.

With the advent of the C++11 standard, C++ now offers standardized support for multithreaded applications in the form of new library classes and functions and a new multithreading-aware memory model.

C++ Concurrency in Action is about writing programs in C++ using multiple threads for concurrency and the C++ language features and library facilities that make that possible. This book provides a tutorial covering the use of the new C++11 library facilities, such as std::thread, std::future and std::condition_variable, as well as an in-depth description of the new memory model and std::atomic classes for low level synchronization. In later chapters, the book then goes on to cover the design of multithreaded code, including lock-free data structures and thread pools. Finally, there is a chapter on testing and debugging multithreaded applications.

It doesn't stop there though: the appendices include a brief overview of the new language features in C++11 such as variadic templates, lambda functions and rvalue references, as well as a 127 page reference covering every class and function in the C++11 Standard Thread Library.