这是陈硕在 2009 年上海 C++ 技术大会演讲《当析构函数遇到多线程》的 PPT 投影片,可自由用于个人学习,其他使用需得到作者许可。 简介:编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种 race condition 是 C++ 多线程编程面临的基本问题,可以借助 t
编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以借助 boost 的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。 本文源自陈硕在 2009 年 12 月上海
什么没听说过D语言?那下来看看吧 第一届《D 编程语言大会》于2007年8月23至24日在亚马逊河边的西雅图举办。 D 是一种系统编程语言。它的重点在于整合了 C 和 C++ 的强大及高性能,同时又具有像现 代语言 Ruby 和 Python 一样的程序员生产率。对于其它像质量保证、文档、管理、移植性 和可靠性等这些需求,它也给予了特别的关注。 D 语言需要静态录入,然后直接编译成机器代码。它是多模式的(multiparadigm),即支持多 种编程风格:命令式、面向对象以及元式编程。它属于