Every modern CPU has multiple cores. Using them safely is the hardest problem in C++ — and the one most developers learn last. This book teaches it from the memory model up.Start with happens-before, atomics, and the six memory orderings. Move through threads, jthreads, mutexes, condition variables, futures, and thread pools. Then dive into C++20 coroutines — the promise type, the awaiter, custom task types, and asynchronous I/O with io_uring and epoll. Finish with parallel algorithms, profiling tools, and the debugging discipline that surfaces races before production does.Working code throughout. Runs on any C++20 compiler.