RAII(Resource Acquisition Is Initialization,中文常译“资源获取即初始化”):一种常见于 C++ 的资源管理习惯用法。核心思想是:把资源的获取与对象的初始化绑定,并在对象生命周期结束(离开作用域)时自动释放资源,从而提升代码的安全性与可维护性,尤其有助于处理异常情况下的资源清理。
/ˌɑːr eɪ aɪ ˈaɪ/
I use RAII to ensure files are closed automatically.
我用 RAII 来确保文件会自动关闭。
By wrapping the mutex in a lock guard, the code relies on RAII so the lock is released even if an exception is thrown.
通过把互斥量包装进锁守卫对象,代码利用 RAII 实现:即使抛出异常,锁也会被自动释放。
RAII 是一个缩写,来自短语 Resource Acquisition Is Initialization。这一术语与实践在 C++ 社区中广泛传播,常与 C++ 的对象生命周期、构造函数/析构函数机制联系在一起,用来系统化地解决“资源何时释放”的问题(例如文件句柄、内存、锁、网络连接等)。