请教一下boost::shared_ptr的线程安全问题

C/C++ > C++ 语言 [问题点数:40分,结帖人guolisen]
等级
本版专家分:574
结帖率 98.13%
等级
本版专家分:67244
勋章
Blank
红花 2013年8月 Linux/Unix社区大版内专家分月排行榜第一
2012年11月 Linux/Unix社区大版内专家分月排行榜第一
2012年10月 Linux/Unix社区大版内专家分月排行榜第一
2012年9月 Linux/Unix社区大版内专家分月排行榜第一
2012年7月 Linux/Unix社区大版内专家分月排行榜第一
2012年6月 Linux/Unix社区大版内专家分月排行榜第一
2012年5月 Linux/Unix社区大版内专家分月排行榜第一
2011年11月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年6月 Linux/Unix社区大版内专家分月排行榜第二
2013年5月 Linux/Unix社区大版内专家分月排行榜第二
2013年3月 Linux/Unix社区大版内专家分月排行榜第二
2013年1月 Linux/Unix社区大版内专家分月排行榜第二
2012年12月 Linux/Unix社区大版内专家分月排行榜第二
2012年8月 Linux/Unix社区大版内专家分月排行榜第二
2011年12月 Linux/Unix社区大版内专家分月排行榜第二
2011年10月 C/C++大版内专家分月排行榜第二
2011年10月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年6月 C/C++大版内专家分月排行榜第三
2012年6月 PHP大版内专家分月排行榜第三
2012年5月 C/C++大版内专家分月排行榜第三
2012年3月 Linux/Unix社区大版内专家分月排行榜第三
2012年2月 Linux/Unix社区大版内专家分月排行榜第三
2011年11月 C/C++大版内专家分月排行榜第三
等级
本版专家分:20323
勋章
Blank
红花 2003年11月 C/C++大版内专家分月排行榜第一
2003年5月 C/C++大版内专家分月排行榜第一
Blank
黄花 2002年5月 Delphi大版内专家分月排行榜第二
2003年12月 专题开发/技术/项目大版内专家分月排行榜第二
Blank
蓝花 2002年6月 C++ Builder大版内专家分月排行榜第三
2003年11月 专题开发/技术/项目大版内专家分月排行榜第三
等级
本版专家分:574
等级
本版专家分:574
guolisen

等级:

boost::shared_ptr线程安全

boost::shared_ptr的win32实现中,没有使用类似mutex机制却能够实现线程安全线程安全主要就是保证引用计数机制的线程安全 win32实现中关键在于使用了 BOOST_INTERLOCKED_DECREMENT以及BOOST_INTERLOCKED_...

shared_ptr线程安全问题

May <C++ Concurrency in Action 2nd Edition> will give an ansower! Ref: https://blog.csdn.net/jiangfuqiang/article/details/8292906 https://www.cnblogs.com/gqtcgq/p/7492772.html

boost shared_ptr线程安全

转 http://blog.csdn.net/jiangfuqiang/article/details/8292906

shared_ptr线程安全

shared_ptr线程安全shared_ptr的reference count是线程安全的,但是指向的对象不是线程安全的! 本文链接:https://blog.csdn.net/D_Guco/article/details/80155323 shared_ptr的出现在某种程度上...

为什么多线程读写 shared_ptr 要加锁?

为什么多线程读写 shared_ptr 要加锁?陈硕(giantchen_AT_gmail_DOT_com)2012-01-28最新版下载:http://chenshuo.googlecode.com/files/CppEngineering.pdf我在《Linux 多线程服务端编程:使用 muduo C++ 网络库》...

shared_ptr线程安全性分析

shared_ptr线程安全性分析 正如《STL源码剖析》所讲,“源码之前,了无秘密”。本文基于shared_ptr的源代码,提取了shared_ptr的类图和对象图,然后分析了shared_ptr如何保证文档所宣称的线程安全性。本文的分析...

boost学习之boost::shared_ptr

Boost智能指针——shared_ptr boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,...

智能指针 shared_ptr 的使用方法

基于Boost库, C++11 加入了shared_ptr和weak_ptr. 它们最早在TR1中就被引入, 但在C++11中, 在Boost的基础上又加入了新的功能. std::shared_ptr使用引用计数. 每一个shared_ptr的拷贝都指向相同的内存. 在最后一个...

boost::make_shared

shared_ptr很好地消除了显式的delete调用,如果读者掌握了它的用法,可以肯定delete将会在你的编程字典中彻底消失。 但这还不够,因为shared_ptr的构造还需要new调用,这导致了代码中的某种不对称性。虽然shared_...

boost shared_ptr用法

boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子...

Boost智能指针:shared_ptr

共享指针 (shared_ptr) 是现在的 Boost 库中提供的,并且应该是将来 C++1x 的标准库中提供的一个模板类。在此之前,ISO/IEC 14882:2003 标准库 中的“自动指针 (auto_ptr)”也有类似的功能。显然 shared_ptr 要比 ...

shared_ptr

shared_ptr是一个最像指针的"智能指针",是boost.smart_ptr库中最有价值、最重要的组成部分,也是最有用的,Boost库的许多组件--甚至还包括其他一些领域的智能指针都使用了shared_ptr。抱歉,我实在想不出什么更恰当...

Boost智能指针——scoped_ptrshared_ptr

Boost智能指针——scoped_ptr boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用: #include  #...

boost::asio 连接管理11 如何关闭连接

shared_ptr管理连接对象的生命周期shared_ptr的引用计数器决定了连接对象的生命周期。这里我说的连接对象就是在我的前文:http://blog.csdn.net/csfreebird/article/details/8522620中的Client对象:#include "core/...

boost>shared_ptr

由于前辈们在开发事广泛使用了boostshared_ptr因此我打算自己了解一些这个shared_ptr。 shared_ptr应该就是一种智能指针,这一概念在C++primer当中有提到过。或者称“引用计数指针” boost shared_ptr的教程内容...

[C++] Boost智能指针——boost::shared_ptr(使用及原理分析)

 boost::shared_ptr是可以共享所有权的指针。如果有多个shared_ptr共同管理同一个对象时,只有这些shared_ptr全部与该对象脱离关系之后,被管理的对象才会被释放。通过下面这个例子先了解下shared_ptr的基本用法: ...

shared_ptr 的使用及注意事项

1. 声明 #include class UsersBitmap { ...typedef boost::shared_ptr UsersBitmapPtr; 2. 使用 UsersBitmapPtr login_users_; UsersBitmapPtr temp_login_users(new UsersBitmap()); //指向对象 login_user

Boost智能指针-基础篇

内存管理一直是 C++ 一个比较繁琐的问题,而智能指针却可以很好的解决这个问题,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr(现以废弃),它基本...

当析构函数遇到多线程──C++ 中线程安全的对象回调

当析构函数遇到多线程── C++ 中线程安全的对象回调 陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice请尽量阅读本文 PDF 版:http://www.cppblog.com/Files/Solstice/dtor_meets_mt.pdf 豆丁亦可,内容略微...

智能指针之 shared_ptr

shared_ptr是一个最像指针的“智能指针”,是boost.smart_ptr库中最有价值、最重要的组成部分,也是最有用的,Boost库的许多组件–甚至还包括其他一些领域的智能指针都使用了shared_ptr。抱歉,我实在想不出什么更...

使用boost::shared_mutex实现读写锁

伟大的Boost库给我们提供了 shared_mutex 类,结合 unique_lock 与 shared_lock 的使用,可以实现读写锁。 通常读写锁需要完成以下功能: 1.当 data 被线程A读取时,其他线程仍可以进行读取却不能写入 2.当 data ...

Boost中的智能指针详细总结

学习过C/C++的同学都知道,有一个非常方便又特别让人烦的数据类型,那就是指针。而在实际的开发过程中,经常会出现因为未释放申请的内存而导致内存溢出、程序奔溃现象。...本文将介绍Boost中提到的各种智能指针。

学习笔记:shared_ptr陷阱

条款1:不要把一个原生指针给多个shared_ptr管理 int* ptr = new int; shared_ptr p1(ptr); shared_ptr p2(ptr); //logic error ptr对象被删除了2次 这种问题比喻成“二龙治水”,在原生指针中也同样可能发生。...

C++:shared_ptr简介以及常见问题

本文中的shared_ptr以vs2010中的std::tr1::shared_ptr作为研究对象。可能和boost中的有些许差异,特此说明。 基本功能 shared_ptr提供了一个管理内存的简单有效的方法。shared_ptr能在以下方面给开发提供便利: 1...

boost智能指针之shared_ptr和weak_ptr

std::auto_ptr很多的时候并不能满足我们的要求,比如auto_ptr不能用作STL容器...shared_ptr:使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全. weak_ptr:weak_ptrshared_ptr 的观察员

C++内存管理学习笔记(5)

/****************************************************************/ /* 学习是合作和分享式的! /* Author:Atlas Email:wdzxl198@163.com  /* 转载请注明本文出处: * http://blog.csdn.net/w

C++之shared_ptr总结

C++关于shared_ptr的总结。里面有一份简单的源码实现,有助于理解shared_ptr的实际原理。希望对大家有帮助。也欢迎批评指正。

从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> ...

一、boost 智能指针 智能指针是利用RAII(Resource Acquisition Is Initialization:资源获取即初始化)来管理资源。关于RAII的讨论可以参考前面的文 章。在使用boost库之前应该先下载后放在某个路径,并在VS 包含...

boost::shared_ptr的多线程使用陷阱

可以多线程同时读一个shared_ptr, 也可以多线程同时写一个shared_ptr。 但多线程既读又写一个shared_ptr行为是未定义的。

Boost学习系列2-智能指针(下)

3.5、弱指针 前面的几种智能指针在不同场合可以独立使用,然而,弱指针只有在配合共享指针使用时才会有意义,见下面例子:#include #include #include #include DWORD WINAPI reset(LPVOID p)

相关热词 c# 指定打印机名称 c# 在调试窗口输出信息 c# 点对点即时通讯 c#判断数字是否为空 c# 小端 浮点数 c# typeof返回值 c#初始化字符串 c#dataset用法 c#实现凝聚层次聚类 c#最简单线程