Do you have any technical books that bring back memories or emotions? I recently read this book, which reminded me of when, in the last century, I took my operating systems exam. As part of the final test, I had to demonstrate the differences—using example programs and benchmarks—between kernel-space threads and those created in user space with a C library.
The book covers these theoretical aspects and adds others, such as coroutines, promises, and futures, all complemented by example code. The second part is just as useful, as it demonstrates the use of the Boost library.
Finally, a strong added value is the final section, which focuses on debugging and testing concurrent programs—never an easy task. Perhaps the only downside (though not for me) is that Windows users might find it less relevant, as the book is clearly geared towards Linux and OS X developers.