More Concurrent Thinking in C++
Threads and locks are just the basics of multithreaded code. It is important to know how to use these fundamental building blocks, but they are just that: building blocks. This class is for those looking to move to the next level, at high level library and application design.
In this workshop you will learn how to use the basic building blocks to build better reusable abstractions that can simplify the high level code: thread pools, actors, and executors. This will include issues to watch out for when writing and using such abstractions, and how to avoid them.
You will learn about the new multithreading facilities being introduced to upcoming versions of the C++ Standard and how they will simplify your life as a library or application developer.
You will encounter the issues surrounding scalability, the pitfalls that arise when you run code designed for small numbers of cores or increasingly large numbers of cores, and how to design your code to minimize the problems.
Finally, you will also be shown how to test multithreaded code, including the use of tools like Thread Sanitizer.
There will be exercises throughout the workshop.
Anthony Williams is the author of C++ Concurrency in Action, and a UK-based developer and consultant with many years of experience in C++. He has been an active member of the BSI C++ Standards Panel since 2001, and is author or coauthor of many of the C++ Standards Committee papers that led up to the inclusion of the thread library in the C++11 Standard. He is the developer of the just::thread implementation of the C++11 thread library from Just Software Solutions Ltd. Anthony lives in the far west of Cornwall, England.