如鵬網(wǎng) 大學(xué)生計(jì)算機(jī)學(xué)習(xí)社區(qū)

          CowNew開源團(tuán)隊(duì)

          http://www.cownew.com 郵件請聯(lián)系 about521 at 163.com

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

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

          我試了下DEMO里面TEST,結(jié)果發(fā)現(xiàn)如果使用SocketDBListener則整個(gè)程序不能正常結(jié)束
          我查了下代碼發(fā)現(xiàn)是SocketDBListener里面的THREAD不是后臺(tái)的,而且也沒有手工關(guān)閉的原因
          我改成后臺(tái)的之后就沒問題了


          另外還發(fā)現(xiàn)一個(gè)問題,
          在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個(gè)問題:
          1)super.finalize() 最好在最后調(diào)用,而且最好在FIANLLY里用,如:
          finally{
          super.finalize();
          }
          2) 關(guān)閉socket之類的工作在fianlize里面做不太好,在我的測試?yán)?,?dāng)MAIN方法進(jìn)行完了后
          finalize并沒有執(zhí)行,而且因?yàn)镾ocketDBListener里面的THREAD還在,所以shoutdownHook也沒有執(zhí)行;
          而且即使該為后臺(tái)線程,能正常關(guān)閉了,finalize也不一定進(jìn)行的
          所以建議為IDBListener增加一個(gè)主動(dòng)關(guān)閉的方法

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 白水县| 临洮县| 孙吴县| 疏勒县| 芷江| 潼南县| 梨树县| 柞水县| 嵊泗县| 青阳县| 当阳市| 庆城县| 西贡区| 怀远县| 桐柏县| 鹤壁市| 林芝县| 瓮安县| 唐河县| 开平市| 繁昌县| 霞浦县| 郓城县| 仙游县| 宝清县| 镇康县| 安福县| 中西区| 嵩明县| 绥芬河市| 右玉县| 陆河县| 林西县| 江油市| 永清县| 吉林市| 平和县| 宜章县| 叙永县| 昌都县| 鄯善县|