Dubbo-Client線程池機(jī)制

DUbbo-Client默認(rèn)的線程池是CachedThreadPool

/**
* 此線程池可伸縮胸私,線程空閑一分鐘后回收,新請(qǐng)求重新創(chuàng)建線程纵搁,來源于:<code>Executors.newCachedThreadPool()</code>
* 
* @see java.util.concurrent.Executors#newCachedThreadPool()
* @author william.liangf
*/
public class CachedThreadPool implements ThreadPool {

   public Executor getExecutor(URL url) {
       String name = url.getParameter(Constants.THREAD_NAME_KEY, Constants.DEFAULT_THREAD_NAME);
       int cores = url.getParameter(Constants.CORE_THREADS_KEY, Constants.DEFAULT_CORE_THREADS);
       int threads = url.getParameter(Constants.THREADS_KEY, Integer.MAX_VALUE);
       int queues = url.getParameter(Constants.QUEUES_KEY, Constants.DEFAULT_QUEUES);
       int alive = url.getParameter(Constants.ALIVE_KEY, Constants.DEFAULT_ALIVE);
       return new ThreadPoolExecutor(cores, threads, alive, TimeUnit.MILLISECONDS, 
               queues == 0 ? new SynchronousQueue<Runnable>() : 
                   (queues < 0 ? new LinkedBlockingQueue<Runnable>() 
                           : new LinkedBlockingQueue<Runnable>(queues)),
               new NamedThreadFactory(name, true), new AbortPolicyWithReport(name, url));
   }

}

實(shí)際過程中可能會(huì)導(dǎo)致client線程堆積

Downloads cat jstack.txt | grep "DubboClientHandler" | grep  "10.1.14.200" | wc -l
   1542
?  Downloads cat jstack.txt | grep "DubboClientHandler" | grep  "10.1.14.200" | more
"DubboClientHandler-10.1.14.200:20880-thread-27" #12018 daemon prio=5 os_prio=0 tid=0x00007f40f1170000 nid=0x7b3a waiting on condition [0x00007f3de25e5000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #12008 daemon prio=5 os_prio=0 tid=0x00007f40e9283800 nid=0x7b24 waiting on condition [0x00007f3de2fef000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #12002 daemon prio=5 os_prio=0 tid=0x00007f40e5077800 nid=0x7b1e waiting on condition [0x00007f3de35f5000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11992 daemon prio=5 os_prio=0 tid=0x00007f40d5180000 nid=0x7b14 waiting on condition [0x00007f3de3fff000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11979 daemon prio=5 os_prio=0 tid=0x00007f40f9018800 nid=0x7b06 waiting on condition [0x00007f3de4d0c000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11973 daemon prio=5 os_prio=0 tid=0x00007f40f115c000 nid=0x7b00 waiting on condition [0x00007f3de5312000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11965 daemon prio=5 os_prio=0 tid=0x00007f40e9157000 nid=0x7af1 waiting on condition [0x00007f3de5b1a000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11955 daemon prio=5 os_prio=0 tid=0x00007f40e5065000 nid=0x780f waiting on condition [0x00007f3de6221000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11922 daemon prio=5 os_prio=0 tid=0x00007f40d5161800 nid=0x77ed waiting on condition [0x00007f3de8342000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11920 daemon prio=5 os_prio=0 tid=0x00007f40f9002800 nid=0x77eb waiting on condition [0x00007f3de8544000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11917 daemon prio=5 os_prio=0 tid=0x00007f40f1145800 nid=0x77e8 waiting on condition [0x00007f3de8847000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11912 daemon prio=5 os_prio=0 tid=0x00007f40e934d800 nid=0x77e1 waiting on condition [0x00007f3de8c4b000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11900 daemon prio=5 os_prio=0 tid=0x00007f40e504f000 nid=0x77cf waiting on condition [0x00007f3de9958000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11889 daemon prio=5 os_prio=0 tid=0x00007f40d5155000 nid=0x7532 waiting on condition [0x00007f3dea05f000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11888 daemon prio=5 os_prio=0 tid=0x00007f40f8ff7000 nid=0x7530 waiting on condition [0x00007f3dea160000]
"DubboClientHandler-10.1.14.200:20880-thread-27" #11884 daemon prio=5 os_prio=0 tid=0x00007f40f1139800 nid=0x7528 waiting on condition [0x00007f3dea463000]

寫了個(gè)段測(cè)試代碼

       ThreadPoolExecutor es = new ThreadPoolExecutor(40, 400, 1000, TimeUnit.MILLISECONDS,
               new SynchronousQueue<Runnable>(),
               new NamedThreadFactory("my-test", true));
       for (int i = 0; i < 400; ++i) {

           es.submit(new Runnable() {

               @Override
               public void run() {
                   System.out.println(System.currentTimeMillis());
                   try {
                       Thread.sleep(1000);
                   } catch (InterruptedException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                   }
               }
           });
       }
       
       System.in.read();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末违柏,一起剝皮案震驚了整個(gè)濱河市波闹,隨后出現(xiàn)的幾起案子挡育,更是在濱河造成了極大的恐慌亮蛔,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浴讯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蔼啦,警方通過查閱死者的電腦和手機(jī)榆纽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捏肢,“玉大人奈籽,你說我怎么就攤上這事⊥液眨” “怎么了衣屏?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)辩棒。 經(jīng)常有香客問我狼忱,道長(zhǎng)膨疏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任钻弄,我火速辦了婚禮佃却,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窘俺。我一直安慰自己饲帅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布瘤泪。 她就那樣靜靜地躺著灶泵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪对途。 梳的紋絲不亂的頭發(fā)上赦邻,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音掀宋,去河邊找鬼深纲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛劲妙,可吹牛的內(nèi)容都是我干的湃鹊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼镣奋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼币呵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侨颈,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤余赢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后哈垢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妻柒,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年耘分,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了举塔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡求泰,死狀恐怖央渣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渴频,我是刑警寧澤芽丹,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站卜朗,受9級(jí)特大地震影響拔第,放射性物質(zhì)發(fā)生泄漏咕村。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一楼肪、第九天 我趴在偏房一處隱蔽的房頂上張望培廓。 院中可真熱鬧,春花似錦春叫、人聲如沸肩钠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽价匠。三九已至,卻和暖如春呛每,著一層夾襖步出監(jiān)牢的瞬間踩窖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工晨横, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洋腮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓手形,卻偏偏與公主長(zhǎng)得像啥供,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子库糠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容