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

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

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

    posts - 11, comments - 9, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    線程重命名(Netty)和設計模式Decorator

    Posted on 2012-06-16 22:32 steven.cui 閱讀(1158) 評論(0)  編輯  收藏 所屬分類: java

    java的多線程Thread類提供了setName方法或者通過構(gòu)造器傳入name,來指定線程的名稱。

    近些時間在開源方面看到Netty,觀察到Netty的重命名線程的策略類:

    ThreadNameDeterminer。這個接口有兩個策略,一個是使用PROPOSED(建議名稱),還有個是CURRENT(當前名稱)

    當前名稱的策略是未實現(xiàn)的,可能為以后擴展考慮吧。

    另外就是ThreadRenamingRunnable這個類,這個類里面構(gòu)建函數(shù)傳入Runnable接口,和proposed建議名稱。

    由于本身ThreadRenamingRunnable也是實現(xiàn)Runnable類的,所以你在自己業(yè)務邏輯種還是照樣實現(xiàn)Runnable接口來寫邏輯,完全對業(yè)務代碼沒有侵入。

    代碼中大概是這樣的情況:

    public run() {
         //根據(jù)規(guī)則把線程名字進行修改
         try {
              runnable.run(); // 調(diào)用傳入接口的run方法
         } finally {
              if (renamed)
                   // 恢復之前的名字
         }
    }


    只需要在構(gòu)建的你的Runnable的時候,重新包裝一下即可:

    new ThreadRenamingRunnable(new OioWorker(acceptedChannel),

                                   "Old I/O server worker (parentId: " + channel.getId() + ", " + channel + ')'));


    這樣的Decorator模式,重新將Runnable接口進行了“裝飾”,使其具備了線程名稱的功能。

    Runnable接口還是原來的接口,對run方法的再次封裝使其具備了另外一項功能,這就是Decorator模式的精華所在。

    主站蜘蛛池模板: 日韩精品免费电影| 在线免费观看a级片| 亚洲综合精品网站在线观看| 亚洲最大天堂无码精品区| 永久免费AV无码国产网站| 亚洲国产精品免费在线观看| 亚洲一区二区三区免费视频| 亚洲国产精品午夜电影| 日韩精品无码区免费专区| 亚洲综合一区无码精品| 岛国大片免费在线观看| 爱爱帝国亚洲一区二区三区| 免费A级毛片无码久久版| jizz免费在线观看| 亚洲爆乳无码专区| 国产精品入口麻豆免费观看| 亚洲黄页网在线观看| 小小影视日本动漫观看免费| 四虎影视久久久免费观看| 国产亚洲av片在线观看18女人 | 国产午夜亚洲不卡| 日本免费中文字幕| 亚洲国产日韩在线一区| 好男人看视频免费2019中文| 婷婷国产偷v国产偷v亚洲| 国产亚洲av片在线观看18女人| 免费视频成人手机在线观看网址| 亚洲综合免费视频| 四虎永久在线精品免费观看地址| sihu国产精品永久免费| 精品无码一区二区三区亚洲桃色| 毛片基地免费观看| 国产成人1024精品免费| 中文字幕亚洲综合久久| 欧洲精品免费一区二区三区| a级精品九九九大片免费看| 亚洲人xxx日本人18| 中文字幕一精品亚洲无线一区| 9420免费高清在线视频| 香港特级三A毛片免费观看| 亚洲AV成人一区二区三区AV|