如鵬網 大學生計算機學習社區

          CowNew開源團隊

          http://www.cownew.com 郵件請聯系 about521 at 163.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

          上午我試了下JDBMonitor(http://www.cownew.com),并閱讀了部分代碼
          我覺得想法挺好的,不過我也發現了一個BUG

          我試了下DEMO里面TEST,結果發現如果使用SocketDBListener則整個程序不能正常結束
          我查了下代碼發現是SocketDBListener里面的THREAD不是后臺的,而且也沒有手工關閉的原因
          我改成后臺的之后就沒問題了


          另外還發現一個問題,
          在SocketDBListener的代碼里有這么一段:

          protected void finalize() throws Throwable
          {
          super.finalize();
          for(int i=0,n=clientList.size();i<n;i++)
          {
          Socket socket = (Socket) clientList.get(i);
          socket.close();
          }
          }
          這樣有2個問題:
          1)super.finalize() 最好在最后調用,而且最好在FIANLLY里用,如:
          finally{
          super.finalize();
          }
          2) 關閉socket之類的工作在fianlize里面做不太好,在我的測試里,當MAIN方法進行完了后
          finalize并沒有執行,而且因為SocketDBListener里面的THREAD還在,所以shoutdownHook也沒有執行;
          而且即使該為后臺線程,能正常關閉了,finalize也不一定進行的
          所以建議為IDBListener增加一個主動關閉的方法

          posted on 2006-05-22 01:34 CowNew開源團隊 閱讀(844) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 大同县| 荔波县| 蒙阴县| 双桥区| 北海市| 鸡东县| 沈阳市| 普陀区| 玛纳斯县| 亳州市| 丘北县| 双江| 武威市| 松原市| 伊春市| 灌云县| 嵊泗县| 航空| 荥阳市| 翁牛特旗| 公安县| 尤溪县| 广饶县| 青田县| 新干县| 澎湖县| 开江县| 蓬安县| 天镇县| 荆州市| 若羌县| 湖南省| 仙居县| 万源市| 宁蒗| 黎川县| 龙南县| 长寿区| 旺苍县| 盐源县| 越西县|