反对匿名用户的答案,(boost或C++11的)shared_ptr不是线程安全的,读安全,写不安全
最简单的方法就是给shared_ptr用锁保护,因为如果想要修改shared_ptr内部的实现来支持多线程,写操作时会涉及到多个地址的更改,用简单的单地址的CAS也是做不到的。所以,不想使用锁的话,最好对shared_ptr只读不写
===========================
放嘲讽:下面答案和评论的知友们,你们真的明白什么是线程安全和线程不安全嘛 =。=