<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      定位問題4--為什么剛創(chuàng)建的對象使用時就沒有了?

      如下代碼

      Timer timer = createTimerEng(.....);
      operationList.push_back({session, key, timer,0});
      printf("insert key %s timer %p callBackData %p",key.c_str(),timer,callBackData);
      startTimer(timer);-----------------在timer的庫里打印了失敗,這明顯是剛創(chuàng)建的啊,怎么回事?
      背景:
      createTimerEng/startTimer 為三方庫提供的方法,其它項目使用也沒有問題。但是這里startTimer失敗,打印了錯誤日志。
       
      現象:
      1. 上述代碼,在createTimerEng創(chuàng)建的時候,沒有錯誤
      2. printf 打印的指針也不是空的
      3. 運行startTimer----三方庫,此時就報錯,但這個庫是其它人用的好好的
       
      定位:
      嘗試過多種方法
      1. 單獨按三方庫的指導寫了下timer----正常
      ----初步確認三方庫沒有問題
      2. 分析打印,這里打印的指針地址也沒有問題
      -------------------------------------------------耗費了較多時間
      struct OperationItem {
          std::string a;
          UsbDeviceKey b;
          Timer timer;
          int retryTimes;
          bool operator==(const OperationItem& other) const {
              return session == other.session && key == other.key;
          }
          ~OperationItem() {
            if(timer != nullptr){
          deleteTimer(timer);-------------------------------------拷貝的臨時對象析構時,這里針將這個timer delete 掉
          timer = nullptr;
        }
          }
      };
      3. 單獨分析資源釋放操作
        ----發(fā)現 operationList.push_back({session, key, timer,0}); 這里有一次拷貝構造函數調用,有一個臨時對象,在臨時對象析構時,會delete timer
       
      經驗:
      1. 從日志分析,不要忽略了潛在的操作----如這里的拷貝復制
      2. 對資源的管理,還需慎之又慎
      ----但過尤不及,探討語言的新特性來管理這里的資源-----------待研究具體的方法
      3. 對資源的使用建立明確的規(guī)則,如
        3.1.  明確這里timer的使用和釋放,由誰來操作,資源管理集中
        3.2. 有明確的規(guī)范來操作此事,如通過類來封裝,或使用類似智能指針的方法
       
      總結
      1. 研究一個更好的自動釋放的方法,類封裝,或接口封裝,或使用語言的特性(auto_ptr等,但需要研究清楚使用場景再使用)
      2. 明確規(guī)則,資源管理集中
      2.1. 如:將timer集中到當前類管理,那么 OperationItem  類就不能有deleteTimer的職責
      2.2. 或將 create delete Timer都放到 OperationItem  中管理
      2.3. 單獨封裝資源管理,通過auto_ptr或其它方式,共享,并插入數據結構
       
      最終使用了這里的 2.1 ,原因如下
      1. 修改最小
      2. 好理解
      posted @ 2025-11-03 15:50  知易  閱讀(3)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费无码高潮流白浆视频| 欧美牲交a欧美牲交aⅴ免费真| 国产在线精品中文字幕| 成人免费毛片aaaaaa片| 日韩精品久久久肉伦网站| 国产精品日韩av在线播放| 一本大道无码av天堂| 国精品无码一区二区三区在线看| 亚洲欧洲av一区二区久久| 日韩人妻中文字幕精品| 左贡县| 亚洲精品视频一二三四区| 免费看欧美全黄成人片| 国产一区二区三区在线观看免费| 97久久超碰精品视觉盛宴| 午夜DY888国产精品影院| 黑人大荫道bbwbbb高潮潮喷| 色二av手机版在线| 久久久精品国产精品久久| 国产对白老熟女正在播放| 国产高清亚洲一区亚洲二区| 黄色三级亚洲男人的天堂| 国产女人18毛片水真多1| 国产欧美在线手机视频| 国产精品二区中文字幕| 无码av中文一区二区三区桃花岛| 日本东京热不卡一区二区| 四虎国产精品永久在线| 亚洲欧洲自拍拍偷午夜色| 日韩精品一区二区蜜臀av| 九九热在线精品视频免费| 亚洲综合天堂一区二区三区| 一亚洲一区二区中文字幕| 亚洲无线码一区二区三区| 黑人巨茎大战欧美白妇| 欧美日本激情| 精品中文人妻在线不卡| 精品在免费线中文字幕久久| 亚洲成a人v欧美综合天堂下载| 国产v综合v亚洲欧美大天堂| 国产精品久久精品|