C++ Concurrency in Action 2nd Edition by Anthony Williams, ISBN-13: 978-1617294693
[PDF eBook eTextbook]
- Publisher: Manning; 2nd edition (February 10, 2019)
- Language: English
- 592 pages
- ISBN-10: 1617294691
- ISBN-13: 978-1617294693
Written for intermediate C and C++ developers. No prior experience with concurrency required.
This bestseller has been updated and revised to cover all the latest changes to C++ 14 and 17! C++ Concurrency in Action, Second Edition teaches you everything you need to write robust and elegant multithreaded applications in C++17.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
You choose C++ when your applications need to run fast. Well-designed concurrency makes them go even faster. C++ 17 delivers strong support for the multithreaded, multiprocessor programming required for fast graphic processing, machine learning, and other performance-sensitive tasks. This exceptional book unpacks the features, patterns, and best practices of production-grade C++ concurrency.
About the Book
C++ Concurrency in Action, Second Edition is the definitive guide to writing elegant multithreaded applications in C++. Updated for C++ 17, it carefully addresses every aspect of concurrent development, from starting new threads to designing fully functional multithreaded algorithms and data structures. Concurrency master Anthony Williams presents examples and practical tasks in every chapter, including insights that will delight even the most experienced developer.
What’s inside
- Full coverage of new C++ 17 features
- Starting and managing threads
- Synchronizing concurrent operations
- Designing concurrent code
- Debugging multithreaded applications
Table of Contents:
Copyright
Dedication
Brief Table of Contents
Table of Contents
Praise for the first edition
Preface
Acknowledgments
About this book
Roadmap
Who should read this book
How to use this book
Code conventions and downloads
Software requirements
Book forum
About the author
About the cover illustration
Chapter 1. Hello, world of concurrency in C++!
1.1. What is concurrency?
1.2. Why use concurrency?
1.3. Concurrency and multithreading in C++
1.4. Getting started
Summary
Chapter 2. Managing threads
2.1. Basic thread management
2.2. Passing arguments to a thread function
2.3. Transferring ownership of a thread
2.4. Choosing the number of threads at runtime
2.5. Identifying threads
Summary
Chapter 3. Sharing data between threads
3.1. Problems with sharing data between threads
3.2. Protecting shared data with mutexes
3.3. Alternative facilities for protecting shared data
Summary
Chapter 4. Synchronizing concurrent operations
4.1. Waiting for an event or other condition
4.2. Waiting for one-off events with futures
4.3. Waiting with a time limit
4.4. Using synchronization of operations to simplify code
Summary
Chapter 5. The C++ memory model and operations on atomic types
5.1. Memory model basics
5.2. Atomic operations and types in C++
5.3. Synchronizing operations and enforcing ordering
Summary
Chapter 6. Designing lock-based concurrent data structures
6.1. What does it mean to design for concurrency?
6.2. Lock-based concurrent data structures
6.3. Designing more complex lock-based data structures
Summary
Chapter 7. Designing lock-free concurrent data structures
7.1. Definitions and consequences
7.2. Examples of lock-free data structures
7.3. Guidelines for writing lock-free data structures
Summary
Chapter 8. Designing concurrent code
8.1. Techniques for dividing work between threads
8.2. Factors affecting the performance of concurrent code
8.3. Designing data structures for multithreaded performance
8.4. Additional considerations when designing for concurrency
8.5. Designing concurrent code in practice
Summary
Chapter 9. Advanced thread management
9.1. Thread pools
9.2. Interrupting threads
Summary
Chapter 10. Parallel algorithms
10.1. Parallelizing the standard library algorithms
10.2. Execution policies
10.3. The parallel algorithms from the C++ Standard Library
Summary
Chapter 11. Testing and debugging multithreaded applications
11.1. Types of concurrency-related bugs
11.2. Techniques for locating concurrency-related bugs
Summary
Appendix A. Brief reference for some C++11 language features
A.1. Rvalue references
A.2. Deleted functions
A.3. Defaulted functions
A.4. constexpr functions
A.5. Lambda functions
A.6. Variadic templates
A.7. Automatically deducing the type of a variable
A.8. Thread-local variables
A.9. Class Template Argument Deduction
Summary
Appendix B. Brief comparison of concurrency libraries
Appendix C. A message-passing framework and complete ATM example
Appendix D. C++ Thread Library reference
D.1. The <chrono> header
D.2. <condition_variable> header
D.3. <atomic> header
D.4. <future> header
D.5. <mutex> header
D.6. <ratio> header
D.7. <thread> header
Index
List of Figures
List of Tables
List of Listings
Anthony Williams has been an active member of the BSI C++ Panel since 2001 and is the developer of the just::thread Pro extensions to the C++ 11 thread library.
What makes us different?
• Instant Download
• Always Competitive Pricing
• 100% Privacy
• FREE Sample Available
• 24-7 LIVE Customer Support
Reviews
There are no reviews yet.