官方文档的说明
shared_ptr objects offer the same level ofthread safety as built-in types. A shared_ptr instance can be "read"(accessed using only const operations) simultaneously by multiple threads.Different shared_ptr instances can be "written to" (accessed usingmutable operations such as operator= or reset) simultaneously by multiplethreads (even when these instances are copies, and share the same referencecount underneath.)
Any other simultaneous accesses result inundefined behavior.
shared_ptr对象提供同内建类型(int,double)一样的线程安全性。一个shared_ptr实例能够同时被多个线程“读取”(通过const方法)。不同的shared_ptr实例可以同时被多个线程“写入”,如==、reset等。(即使这些实例是同一个智能指针的副本,它们都共享同一个引用计数对象)。