知识卡片

RAII绑定退出动作

普通读书笔记卡 · 1441

内容

RAII 将资源或收尾责任交给局部对象,使作用域正常返回或异常退出时通过析构执行清理。它保证路径覆盖,但不替你决定正确策略;线程包装器仍须选择 join 或 detach,并考虑阻塞或悬垂访问。

参考来源

- 位置:《Effective Modern C++》第7章《并发API》,条款三十七:使 std::thread 在所有路径最后都不可结合(源文件:_epub-src/EPUB/text/ch008.xhtml) - 结论依据:原文用局部析构覆盖每条退出路径解释RAII,再以线程收束说明策略不能被机制取代。 - 原始内容:每当你想在执行跳至块之外的每条路径执行某种操作,最通用的方式就是将该操作放入局部对象的析构函数中。这些对象称为 RAII对象 ( RAII objects ),从 RAII类 中实例化。(RAII全称为 “Resource Acquisition Is Initialization”(资源获得即初始化),尽管技术关键点在析构上而不是实例化上)。RAII类在标准库中很常见。比如STL容器(每个容器析构函数都销毁容器中的内容物并释放内存),…