zoukankan      html  css  js  c++  java
  • 【14】在资源管理类中小心copying行为

    1、为什么要使用资源管理类?

      资源管理类的思路就是,栈上的对象,封装堆上分配的资源,确保一定会释放资源。auto_ptr和shared_ptr就是资源管理类,行为上像指针。

    2、auto_ptr和shared_ptr用来管理,堆上分配的内存,在auto_ptr和shared_ptr的析构方法中,执行delete。对于其他资源,auto_ptr和shared_ptr并不适合作为资源管理类。考虑互斥锁mutex,有普通方法lock和unlock,提供一个资源管理类Lock,管理mutex。资源管理类Lock被复制,将发生什么情况?该怎么办?

      a、禁止复制;

      b、采用引用计数法,也就是shared_ptr,可以共享资源,注意:当引用计数为0的时候,不是delete,而是unlock,提供给shared_ptr一个删除器;

      c、深度复制,复制指针指向的内容;

      d、转移资源的拥有权;

  • 相关阅读:
    java实现同步的两种方式
    JAVA线程概念
    XML基础总结
    JAVA使用和操作properties文件
    JAVA序列化基础知识
    easyui 在编辑状态下,动态修改其他列值。
    Activiti初学问题,求解
    java web--DOM
    java web(1)
    Java WEB
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3512691.html
Copyright © 2011-2022 走看看