It "offers" thread safety in the sense that it's theoretically possible to write a thread safe program in C++. It certainly makes it about as difficult as humanly possible to do so, however, especially when they include stuff like the consume ordering that isn't even well-defined.