Key Features
- Learn how to use modern C++ features, including futures, promises, async, and coroutines to build asynchronous solutions
- Develop cross-platform network and low-level I/O projects with Boost.Asio
- Master optimization techniques by understanding how software adapts to machine hardware
- Purchase of the print or Kindle book includes a free PDF eBook
Book Description
As hardware continues to evolve with greater memory capacity and multi-core processors, software must keep pace to efficiently utilize available resources and minimize idle CPU cycles. In this book, you will explore a wide range of parallel programming paradigms, including concurrent, parallel, multithreading, reactive, and event-driven programming, as well as dataflows. It clarifies the relationships between threads, processes, and services while guiding you through thread creation and management. You'll gain hands-on experience with C++'s thread-safety mechanisms, such as mutual exclusion, atomic operations, semaphores, condition variables, latches, and barriers. Unlike other books, it offers an in-depth approach to building and implementing asynchronous applications in C++. You'll master core concepts like futures, promises, async functions, and coroutines, alongside practical applications using third-party libraries. Step by step, you'll leverage Boost.Asio and Boost.Cobalt to develop network and low-level I/O solutions while learning proven performance optimization techniques, testing strategies, and debugging methods. By the end of this book, you'll be equipped to develop high-performance applications using C++20 and C++23's cutting-edge asynchronous programming techniquesWhat you will learn
- Explore the different parallel paradigms and know when to apply them
- Acquire deep knowledge of thread management and safety mechanisms
- Understand asynchronous programming in C++, including coroutines
- Leverage network asynchronous programming by using Boost.Asio and Boost.Cobalt
- Add proven performance and optimization techniques to your toolbox
- Find out how to test and debug asynchronous software
Who this book is for
This book is for software engineers, developers and system programmers with some prior experience of C++ coding principles and familiar with networking, hardware and Linux systems. If you want to improve your C++ skills and learn to develop high-performance software using the latest modern C++ features, this book is for you. It will teach you how and when to use the latest C++ features to develop asynchronous solutions, to test and debug multithreaded software. By the end of the book, you will be well-equipped to implement high-performance software by using the most modern C++ techniques.
]]>