
C++ Concurrency in Action
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
- Full coverage of new C++ 17 features
- Starting and managing threads
- Synchronizing concurrent operations
- Designing concurrent code
- Debugging multithreaded applications
- Hello, world of concurrency in C++!
- Managing threads
- Sharing data between threads
- Synchronizing concurrent operations
- The C++ memory model and operations on atomic types
- Designing lock-based concurrent data structures
- Designing lock-free concurrent data structures
- Designing concurrent code
- Advanced thread management
- Parallel algorithms
- Testing and debugging multithreaded applications
More details
Other editions
Additional editions

Person
Content
- Intro
- 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. ∶& header
- D.7. &thread& header
- Index
- List of Figures
- List of Tables
- List of Listings
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.