亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 打造阻塞式線程池的實(shí)例詳解

 更新時(shí)間:2017年07月30日 10:14:13   作者:steeven  
這篇文章主要介紹了java 打造阻塞式線程池的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家,理解這部分知識(shí),需要的朋友可以參考下

java 打造阻塞式線程池的實(shí)例詳解

原來(lái)以為tiger已經(jīng)自帶了這種線程池,就是在任務(wù)數(shù)量超出時(shí)能夠阻塞住投放任務(wù)的線程,主要想用在JMS消息監(jiān)聽(tīng)。

開(kāi)始做法:

ThreadPoolExcecutor中代入new ArrayBlockingQueue(MAX_TASK). 在任務(wù)超出時(shí)報(bào)錯(cuò):RejectedExecutionException。

后來(lái)不用execute方法加入任務(wù),直接getQueue().add(task), 利用其阻塞特性。但是發(fā)現(xiàn)阻塞好用了,但是任務(wù)沒(méi)有被處理。一看Queue,暈啊,原來(lái)都在里面,任務(wù)池就沒(méi)處理它??礃舆€是要走任務(wù)池。

最后自己重載了一個(gè)BlockedThreadPoolExecutor:

 private ReentrantLock pauseLock = new ReentrantLock();
 private Condition unpaused = pauseLock.newCondition();
 @Override
 public void execute(Runnable command) {
 pauseLock.lock();
 try {
  while (getPoolSize()==getMaximumPoolSize() && getQueue().remainingCapacity()==0)
  unpaused.await();
  super.execute(command);//放到lock外面的話,在壓力測(cè)試下會(huì)有漏網(wǎng)的!
 } catch (InterruptedException e) {
  log.warn(this, e);
 } finally {
  pauseLock.unlock();
 }
 }
 @Override
 protected void afterExecute(Runnable r, Throwable t) {
 super.afterExecute(r,t);
 try{
  pauseLock.lock();
  unpaused.signal();
 }finally{
  pauseLock.unlock();
 }
 }

多線程程序很容易出錯(cuò),寫好了要拼命的用壓力測(cè)試,否則問(wèn)題多多啊~~~

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論!

相關(guān)文章

  • 在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼

    在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼

    這篇文章主要介紹了在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Javaweb-HttpServletResponse的sendRedirectch重定向方式

    Javaweb-HttpServletResponse的sendRedirectch重定向方式

    這篇文章主要介紹了Javaweb-HttpServletResponse的sendRedirectch重定向方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • springboot常用語(yǔ)法庫(kù)的基本語(yǔ)法

    springboot常用語(yǔ)法庫(kù)的基本語(yǔ)法

    FreeMarker 是一款?模板引擎: 即一種基于模板和要改變的數(shù)據(jù), 并用來(lái)生成輸出文本(HTML網(wǎng)頁(yè),電子郵件,配置文件,源代碼等)的通用工具,這篇文章主要介紹了springboot常用語(yǔ)法庫(kù)的基本語(yǔ)法,需要的朋友可以參考下
    2022-12-12
  • Java 接口和抽象類的區(qū)別詳解

    Java 接口和抽象類的區(qū)別詳解

    在面向?qū)ο缶幊讨?,抽象類和接口是兩個(gè)經(jīng)常被用到的語(yǔ)法概念,是面向?qū)ο笏拇筇匦裕约昂芏嘣O(shè)計(jì)模式、設(shè)計(jì)思想、設(shè)計(jì)原則編程實(shí)現(xiàn)的基礎(chǔ)。本文將主要講解二者的區(qū)別
    2021-05-05
  • Java中使用Filter過(guò)濾器的方法

    Java中使用Filter過(guò)濾器的方法

    Filter過(guò)濾器是javaWeb層面的,它跟Servlet類似,每次前端請(qǐng)求,首先進(jìn)入的是過(guò)濾器,我們必須實(shí)現(xiàn)Filter接口,重寫三個(gè)方法,才能使用Filter過(guò)濾器,需要的朋友可以參考下
    2021-06-06
  • SpringBoot整合阿里云視頻點(diǎn)播的過(guò)程詳解

    SpringBoot整合阿里云視頻點(diǎn)播的過(guò)程詳解

    視頻點(diǎn)播(ApsaraVideo for VoD)是集音視頻采集、編輯、上傳、自動(dòng)化轉(zhuǎn)碼處理、媒體資源管理、分發(fā)加速于一體的一站式音視頻點(diǎn)播解決方案。這篇文章主要介紹了SpringBoot整合阿里云視頻點(diǎn)播的詳細(xì)過(guò)程,需要的朋友可以參考下
    2021-12-12
  • Spring?Boot如何配置yml配置文件定義集合、數(shù)組和Map

    Spring?Boot如何配置yml配置文件定義集合、數(shù)組和Map

    這篇文章主要介紹了Spring?Boot?優(yōu)雅配置yml配置文件定義集合、數(shù)組和Map,包括Spring?Boot?yml配置文件定義基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的方式,需要的朋友可以參考下
    2023-10-10
  • Struts2學(xué)習(xí)筆記(6)-簡(jiǎn)單的數(shù)據(jù)校驗(yàn)

    Struts2學(xué)習(xí)筆記(6)-簡(jiǎn)單的數(shù)據(jù)校驗(yàn)

    這篇文章主要介紹Struts2中的數(shù)據(jù)校驗(yàn),通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明,希望能給大家做一個(gè)參考。
    2016-06-06
  • Java 簡(jiǎn)化正則表達(dá)式的使用

    Java 簡(jiǎn)化正則表達(dá)式的使用

    本篇文章主要介紹了Java 簡(jiǎn)化正則表達(dá)式使用的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • Java多線程中的單例模式兩種實(shí)現(xiàn)方式

    Java多線程中的單例模式兩種實(shí)現(xiàn)方式

    這篇文章主要介紹了Java多線程中的單例模式兩種實(shí)現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論