C++ Concurrency in Action 2nd Edition by Anthony Williams, ISBN-13: 978-1617294693


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:

Brief Table of Contents
Table of Contents
Praise for the first edition
About this book
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
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
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
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
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
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
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
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
Chapter 9. Advanced thread management
9.1. Thread pools
9.2. Interrupting threads
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
Chapter 11. Testing and debugging multithreaded applications
11.1. Types of concurrency-related bugs
11.2. Techniques for locating concurrency-related bugs
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
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
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.

Anthony Williams is a UK-based developer and consultant with many years 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 new C++ Standard, known as C++11 or C++0x. He has been the maintainer of the Boost Thread library since 2006, and 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.

What makes us different?

• Instant Download

• Always Competitive Pricing

• 100% Privacy

• FREE Sample Available

• 24-7 LIVE Customer Support


There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.