<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks

          在使用MINA做客戶端程序時,發現雖然調用了session.close()方法,通過日志也確實看到當前session已經被關閉了,但未什么客戶端程序進程卻沒有停止呢?即MINA客戶端沒有根本的關閉。這個現象在版本1和2中都存在。這是MINA的bug嗎???其實不然...

          我們可以啟動2個服務器端,然后用同一個connector實例來連接這2臺服務器,通過結果可以發現2個連接是相互獨立工作的,及connector和session不是一對一的。

          通過查閱API和源代碼,我們可以發現這里的connector實際是一個連接管理器,其內部通過一個connectQueue隊列同步存儲一個連接列表。并在調用connect()方法時,將當前連接請求注冊到隊列中;同時connector中啟動著一個內部的Worker(工作線程)來管理這些連接。當我們關閉某個session之后,只是關閉了某個請求,工作線程其實并沒有被關閉,所以出現程序沒有停止的現象。

    MINA1.1.7

    可以通過設置工作超時來關閉連接,當所有的連接都被關閉后worker線程將停止,即connector停止。

    Java代碼 復制代碼
    1. connector.setWorkerTimeout(1);   //1秒鐘(默認超時60秒)  

    PS:Worker定義在SocketConnector類中,內部直接實現管理

    MINA2.0

    可以調用connector的dispose()方法。該方法通過調用ExecutorService的shutdown()方法停止業務處理線程,并設置內部disposed標志位標識需要停止連接管理器;Worker線程通過該標識停止。

    Java代碼 復制代碼
    1. connector.dispose();  

    PS: Worker定義在AbstractPollingIoConnector類中,disposed標志在AbstractIoService類中,通過dispose()方法停止ExecutorService并設置disposed標志

    posted on 2009-06-04 13:18 brock 閱讀(2880) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲精品国产亚洲老地址 | 美女视频黄a视频全免费网站色窝| 午夜毛片不卡免费观看视频| 麻豆亚洲av熟女国产一区二| 免费91麻豆精品国产自产在线观看 | 农村寡妇一级毛片免费看视频| 日本大片在线看黄a∨免费| 亚洲五月丁香综合视频| 好先生在线观看免费播放| 亚洲精品一二三区| 午夜毛片不卡高清免费| 男男gay做爽爽免费视频| 九月婷婷亚洲综合在线| 久久久WWW成人免费精品| 亚洲精品无码专区久久久| 免费一级不卡毛片| 亚洲网址在线观看| 欧美男同gv免费网站观看 | 成人免费网站视频www| 亚洲一本大道无码av天堂| 99精品视频免费| 亚洲精品白色在线发布| 国语成本人片免费av无码| 特级做a爰片毛片免费看| 亚洲欧洲∨国产一区二区三区| 香港a毛片免费观看 | 亚洲精品中文字幕无码蜜桃| 久久久国产精品福利免费| 亚洲最大黄色网址| 国产精品视_精品国产免费| 色www永久免费网站| 亚洲理论片中文字幕电影| 性做久久久久免费看| 99久久99这里只有免费的精品| 亚洲精品一卡2卡3卡三卡四卡| 成人免费无码精品国产电影| 99精品视频免费| 亚洲国产精品ⅴa在线观看| 国产精一品亚洲二区在线播放| 日本人的色道免费网站| 免费一级毛片在线播放视频免费观看永久 |