The C++ standard library provides facilities for managing threads, protecting shared data, synchronizing operations between threads, and performing low-level atomic operations. These facilities were added with C++11 and are supported by a thread-aware memory model. section 1.3.2
The library draws on prior experience, especially Boost.Thread, whose classes often share names and structure with the standard facilities. Its design aims for low abstraction costs while also providing higher-level tools that can make multithreaded code easier to write and less error-prone. Standard atomic operations offer portable, maintainable alternatives to platform-specific assembly in many cases. section 1.3.2 section 1.3.4
