02 July 2023

C++ 核心指南目录

“To share ownership between unrelated threads use shared_ptr

理由

如果线程不相关联(比如不在一个作用域范围,或一个在另一个的生命周期内),而且它们需要共享某些自由存储区的内存,这些内存空间后续需要删除。那么 shared_ptr 是唯一能确保安全删除的方式。

注意

  • 可以共享静态对象(比如全局的),因为它不属于任何线程,即无需某个线程负责删除它。
  • 一个自由存储区的对象,不需要删除的话,可以共享。
  • 一个对象术语某个线程,只要第二个线程存活时间不超过第一个个线程,也可以个安全的共享。