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

          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開源團隊 閱讀(842) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 高要市| 罗田县| 邯郸市| 融水| 囊谦县| 同德县| 东乌| 宁阳县| 新民市| 织金县| 林州市| 乌兰浩特市| 黄大仙区| 永春县| 韶山市| 澄城县| 河北省| 泌阳县| 安化县| 乐平市| 桐庐县| 嘉善县| 奉贤区| 滦平县| 大连市| 垣曲县| 石林| 治县。| 依安县| 上虞市| 韩城市| 汝州市| 航空| 扶绥县| 隆尧县| 毕节市| 托克逊县| 浮梁县| 长沙县| 大足县| 晋中市|