Challenging Issues in C++
Writing concurrent programs is inherently complicated; this is particularly true if you only use C++11 and C++14 features. Therefore, I will describe in detail the most challenging issues. My hope is that if I dedicate a whole chapter to the challenges of concurrent programming, you will become more aware of the pitfalls. I will write about challenges such as blocking issues, race conditions, data races, and deadlocks.
Concurrent programming is inherently complicated; therefore, having best practices for data sharing, the right abstraction, and static code analysis makes a lot of sense.
The time library is a key component of the concurrent facilities of C++. Often you let a thread sleep for a specific time duration or until a particular point in time. The time library consists of time points, time durations, and clocks.
The glossary contains non-exhaustive explanations on the most important terms.