当前位置:  开发笔记 > 编程语言 > 正文

C++是否可以像Java一样进行资源管理

如何解决《C++是否可以像Java一样进行资源管理》经验,为你挑选了1个好方法。

在C++中,我们有资源获取初始化(RAII)模式,这极大地简化了资源管理.我们的想法是为任何类型的资源提供一些包装对象.然后,包装对象的析构函数负责在资源超出其范围时释放资源.例如:

{
    auto_ptr smartPointer = new int;
    // some other code

} // the memory allocated for the int is released automatically
  // by smartPointer's destructor

最常见的用法是智能指针.但是,还有许多其他类型的资源(文件,互斥锁,套接字等)可以以完全相同的方式进行管理.

在Java中,不必打扰内存管理.但所有其他类型的资源仍然存在.还有最后块,但它的使用是非常不方便,尤其是当许多不同的异常可以被抛出.

所以,我的问题是,是否有任何Java模式提供相当于C++ RAII的功能?如果没有,请分享您在这个领域的最佳实践(而不是最终,除非它使用一些复杂的方式).



1> Tom Hawtin -..:

你可以使用通常的acquire; try { use; } finally { release; }.或者,您可以使用Execute Around惯用法来抽象资源处理.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有