最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java線程池使用AbortPolicy策略

 更新時間:2022年06月30日 08:46:39   作者:??Gxin????  
這篇文章主要介紹了?Java線程池使用AbortPolicy策略,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下

線程池ThreadPoolExecutor的拒絕策略

線程池中的線程資源全部被占用時,對新添加的Task任務(wù)有不同的處理策略,在默認的情況下,

ThreadPoolExecutor類中有4種不同的處理方式:

  • AbortPolicy:當任務(wù)添加到線程池中被拒絕時,它將拋出RejectExecutionException異常。
  • CallerRunsPolicy:當任務(wù)添加到線程池中被拒絕時,會使用調(diào)用線程池的Thread線程對象處理被拒絕的任務(wù)。
  • DiscardOldestPolicy: 當任務(wù)添加到線程池中被拒絕時,線程池會放棄等待隊列中最舊的未處理任務(wù),然后將被拒絕的任務(wù)添加到等待隊列中。
  • DiscardPolicy:當任務(wù)添加到線程池中被拒絕時,線程池將丟棄被拒絕的任務(wù)。

AbortPolicy策略

AbortPolicy策略是當任務(wù)添加到線程池中被拒絕時,它將拋出RejectedExecutionException異常。

線程執(zhí)行代碼如下:

public class FirstRunnable implements Runnable {
    @Override
    public void run() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
        try {
            System.out.println(Thread.currentThread().getName() +"  開始時間:"+simpleDateFormat.format(new Date()));
            Thread.sleep(1000);
            System.out.println(Thread.currentThread().getName() +"  結(jié)束時間:"+simpleDateFormat.format(new Date()));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

運行類代碼如下:

public class AbortPolicyRun {
    public static void main(String[] args) {
        FirstRunnable firstRunnable = new FirstRunnable();
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(2, 3, 5, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(2), new ThreadPoolExecutor.AbortPolicy());
        for (int i = 0; i < 7 ; i++) {
            threadPoolExecutor.execute(firstRunnable);
        }
    }
}

運行結(jié)果如下:

Exception in thread "main" java.util.concurrent.RejectedExecutionException: Task com.ozx.concurrentprogram.executor.service.FirstRunnable@6c629d6e rejected from java.util.concurrent.ThreadPoolExecutor@5f5a92bb[Running, pool size = 3, active threads = 3, queued tasks = 2, completed tasks = 0]
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)
    at com.ozx.concurrentprogram.executor.controller.AbortPolicyRun.main(AbortPolicyRun.java:19)
pool-1-thread-3  開始時間:16:20:27
pool-1-thread-1  開始時間:16:20:27
pool-1-thread-2  開始時間:16:20:27
pool-1-thread-2  結(jié)束時間:16:20:28
pool-1-thread-2  開始時間:16:20:28
pool-1-thread-1  結(jié)束時間:16:20:28
pool-1-thread-1  開始時間:16:20:28
pool-1-thread-3  結(jié)束時間:16:20:28
pool-1-thread-1  結(jié)束時間:16:20:29
pool-1-thread-2  結(jié)束時間:16:20:29

使用AbortPolicy策略后,線程任務(wù)數(shù)量超出線程池最大線程數(shù)時,線程池將拋出java.util.concurrent.RejectedExecutionException異常。

到此這篇關(guān)于 Java線程池使用AbortPolicy策略的文章就介紹到這了,更多相關(guān)Java AbortPolicy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • BufferedInputStream(緩沖輸入流)詳解_動力節(jié)點Java學院整理

    BufferedInputStream(緩沖輸入流)詳解_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了BufferedInputStream緩沖輸入流的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • java使用反射訪問成員變量的值示例

    java使用反射訪問成員變量的值示例

    這篇文章主要介紹了java使用反射訪問成員變量的值,結(jié)合實例形式分析了java基于反射機制操作類成員變量相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Spring-cloud Config Server的3種配置方式

    Spring-cloud Config Server的3種配置方式

    這篇文章主要介紹了Spring-cloud Config Server的3種配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java多線程及分布式爬蟲架構(gòu)原理解析

    Java多線程及分布式爬蟲架構(gòu)原理解析

    這篇文章主要介紹了Java多線程及分布式爬蟲架構(gòu)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 看過就懂的java零拷貝及實現(xiàn)方式詳解

    看過就懂的java零拷貝及實現(xiàn)方式詳解

    這篇文章主要為大家詳細的介紹了什么是零拷貝,傳統(tǒng)的IO執(zhí)行流程,零拷貝相關(guān)的知識點回顧,零拷貝實現(xiàn)的幾種方式及java提供的零拷貝方式相關(guān)內(nèi)容,有需要的朋友可以借鑒參考下
    2022-01-01
  • 詳解IDEA使用Maven項目不能加入本地Jar包的解決方法

    詳解IDEA使用Maven項目不能加入本地Jar包的解決方法

    這篇文章主要介紹了詳解IDEA使用Maven項目不能加入本地Jar包的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • HashMap的底層實現(xiàn)原理分析

    HashMap的底層實現(xiàn)原理分析

    本文主要介紹了HashMap的底層實現(xiàn)結(jié)構(gòu),包括JDK1.7和1.8版本的區(qū)別,JDK1.7使用數(shù)組加鏈表實現(xiàn),而JDK1.8引入了紅黑樹優(yōu)化,文章詳細解釋了HashMap如何確定哈希桶數(shù)組索引位置、put方法的執(zhí)行過程以及擴容原理
    2025-01-01
  • SpringCloud集成zookeeper實現(xiàn)服務(wù)注冊并訪問功能

    SpringCloud集成zookeeper實現(xiàn)服務(wù)注冊并訪問功能

    zookeeper和eureka一樣,是用于充當服務(wù)注冊功能服務(wù)器的一個springcloud插件,這篇文章主要介紹了SpringCloud集成zookeeper實現(xiàn)服務(wù)注冊并訪問,需要的朋友可以參考下
    2022-06-06
  • 簡單驗證碼生成Java版

    簡單驗證碼生成Java版

    這篇文章主要為大家詳細介紹了簡單驗證碼生成Java版,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java高級面試題小結(jié)

    Java高級面試題小結(jié)

    本文主要介紹了一些在Java面試過程中的一些高級面試題,包括對部分名詞的釋義及代碼解析,具有一定收藏價值,需要的朋友可以參考下
    2017-09-09

最新評論

绍兴市| 即墨市| 拉孜县| 昭平县| 平遥县| 宝兴县| 墨江| 临泉县| 竹山县| 察隅县| 交口县| 清丰县| 岳池县| 寿宁县| 朝阳区| 西城区| 株洲市| 无棣县| 宝清县| 吉林省| 海兴县| 永仁县| 乌审旗| 谷城县| 乌兰浩特市| 泗水县| 辽源市| 吉木萨尔县| 平湖市| 安图县| 个旧市| 灵宝市| 封开县| 芷江| 榕江县| 灵璧县| 上蔡县| 龙岩市| 福贡县| 长白| 蒲城县|