关于shared_ptr

来源:互联网 发布:mac 10.11.6 双系统 编辑:程序博客网 时间:2024/05/21 09:01


其中主要说的是两个点,

1、shared_ptr中有两个数据成员,一个指针,指向了data,另外一个,是指向了引用计数。

2、一个shared_ptr复制需要两个步骤,一是复制data的指针,另外是将引用计数+1。这两个操作本身是原子的,但是这两个步骤不是原子的。

多线程的环境中,就会出现,第一个线程复制了data的指针,但是却没有来得及将引用计数+1就切换到了下一个线程的情况。

集体可以参看陈硕的博客,写得很清楚。

另外还讲到了将shared_ptr作为key的情况。

http://blog.csdn.net/solstice/article/details/8547547


0 0