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

所需积分/C币:38 2010-01-22 23:55:02 532KB APPLICATION/PDF
23
收藏 收藏
举报

编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以借助 boost 的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。 本文源自我在 2009 年 12 月上海 C++ 技术大会的一场演讲《当析构函数遇到多线程》,内容略有增删。原始 PPT 可从 http://download.csdn.net/source/1982430 下载。 本文读者应具有 C++ 多线程编程经验,熟悉互斥器、竞态条件等概念,了解智能指针,知道 Observer 设计模式。

...展开详情
试读 21P 当析构函数遇到多线程── C++ 中线程安全的对象回调
立即下载 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享小兵

关注 私信
上传资源赚钱or赚积分
最新推荐
当析构函数遇到多线程── C++ 中线程安全的对象回调 38积分/C币 立即下载
1/21
当析构函数遇到多线程── C++ 中线程安全的对象回调第1页
当析构函数遇到多线程── C++ 中线程安全的对象回调第2页
当析构函数遇到多线程── C++ 中线程安全的对象回调第3页
当析构函数遇到多线程── C++ 中线程安全的对象回调第4页
当析构函数遇到多线程── C++ 中线程安全的对象回调第5页

试读结束, 可继续读2页

38积分/C币 立即下载