共享指针有线程安全问题。因为对共享指针的操作同时涉及到对计数和资源的操作,这两步没法完全原子化。计数是原子变量不用担心这个,资源就不一定,很有可能出现计数不为0,但资源已经释放的情况。所以多线程使用智能指针必须加锁