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

java Executors工具類的相關(guān)方法使用創(chuàng)建

 更新時(shí)間:2022年11月13日 11:16:39   作者:小威要向諸佬學(xué)習(xí)呀  
這篇文章主要為大家介紹了java Executors工具類的相關(guān)方法使用創(chuàng)建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

通過Executors類創(chuàng)建線程池

線程池的創(chuàng)建方式有很多種,可以通過Executors工具類創(chuàng)建多種模式的線程池,Executors工具類位于java.util.concurrent.locks包中,接下來解釋其中的方法。

首先將線程池的七個(gè)參數(shù)標(biāo)在這里: corePoolSize:表示線程池中核心線程的數(shù)量;

maximumPoolSize:表示線程池中最大線程數(shù)量;

keepAliveTime:針對救急線程的存活時(shí)間的變量,就是當(dāng)線程數(shù)量超過線程池中的核心數(shù)量時(shí),如果沒有新的任務(wù)被提交,那么核心線程外的救急線程就會(huì)保持在keepAliveTime變量值之后被銷毀,而不是立即銷毀;

unit:也是針對救急線程,表示keepAliveTime的核心單位;

workQueue:表示線程池中的阻塞隊(duì)列,阻塞隊(duì)列中存儲(chǔ)著等待執(zhí)行的任務(wù);

threadFactory:表示用來創(chuàng)建線程的線程工廠。創(chuàng)建線程池的時(shí)候,默認(rèn)的線程工廠創(chuàng)建的線程具有相同的優(yōu)先級,可以為線程起一個(gè)好名字;

handler:表示線程池的拒絕策略。當(dāng)線程池中的阻塞隊(duì)列滿了的時(shí)候,線程數(shù)maximumPoolSize也達(dá)到了最大值,如果此時(shí)再有任務(wù)提交到線程池,線程池就會(huì)采取策略來拒絕任務(wù)的執(zhí)行。

??newCachedThreadPool方法

調(diào)用Executors工具類的newCachedThreadPool方法可以創(chuàng)建一個(gè)可緩存的線程池,核心線程數(shù)為0,當(dāng)線程池中的線程數(shù)量超過了運(yùn)行任務(wù)所需要的線程數(shù),那么可以回收空閑的線程,默認(rèn)每60s回收;同時(shí)當(dāng)任務(wù)增加的時(shí)候,線程池又可以創(chuàng)建新的線程來處理任務(wù)。

    public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>());
    }
    public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory) {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>(),
                                      threadFactory);
    }

??newFixThreadPool方法

調(diào)用Executors工具類的newFixThreadPool方法可以創(chuàng)建一個(gè)固定長度大小的線程池,線程池中的線程都是核心線程,也就是創(chuàng)建的線程池中的線程數(shù)量是固定的,能夠控制線程池的最大并發(fā)數(shù)。

當(dāng)向線程池提交任務(wù)時(shí),如果線程池中有空閑的線程則會(huì)直接執(zhí)行任務(wù),如果沒有空閑線程則會(huì)將任務(wù)放入阻塞隊(duì)列中等待,有空閑線程的時(shí)候再去執(zhí)行阻塞隊(duì)列中的線程。

當(dāng)線程池達(dá)到最大線程數(shù)時(shí),線程數(shù)量會(huì)保持不變,一旦某個(gè)線程出現(xiàn)異常,線程池會(huì)補(bǔ)充一個(gè)線程。提交到線程池的任務(wù)過多可能會(huì)導(dǎo)致內(nèi)存溢出。

    public static ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory) {
        return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>(),
                                      threadFactory);
    }

??newScheduledThreadPool方法

調(diào)用Executors工具類的newScheduledThreadPool方法可以創(chuàng)建一個(gè)可以周期性執(zhí)行任務(wù)的線程池,也能夠定時(shí)執(zhí)行任務(wù)。

    public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) {
        return new ScheduledThreadPoolExecutor(corePoolSize);
    }
    public static ScheduledExecutorService newScheduledThreadPool(
            int corePoolSize, ThreadFactory threadFactory) {
        return new ScheduledThreadPoolExecutor(corePoolSize, threadFactory);
    }

??newSingleThreadExecutor方法

調(diào)用Executors工具類的newSingleThreadExecutor方法可以創(chuàng)建只有一個(gè)工作線程的線程池,相當(dāng)于只有一個(gè)線程在工作。能夠保證任務(wù)按照先進(jìn)先出的順序,或者優(yōu)先級順序執(zhí)行任務(wù)。就像單線程在串行執(zhí)行任務(wù)一樣,但是也有些區(qū)別,如果這個(gè)唯一的線程出現(xiàn)了異常,線程池會(huì)創(chuàng)建一個(gè)新的線程來代替它。

   public static ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory) {
        return new FinalizableDelegatedExecutorService
            (new ThreadPoolExecutor(1, 1,
                                    0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>(),
                                    threadFactory));
    }

??newSingleThreadScheduledExecutor方法

調(diào)用Executors工具類的newSingleThreadScheduledExecutor方法可以創(chuàng)建只有一個(gè)工作線程,并且支持定時(shí),周期性執(zhí)行任務(wù)的線程池。

    public static ScheduledExecutorService newSingleThreadScheduledExecutor(ThreadFactory threadFactory) {
        return new DelegatedScheduledExecutorService
            (new ScheduledThreadPoolExecutor(1, threadFactory));
    }

??newWorkStealingPool方法

調(diào)用Executors工具類的newSingleThreadExecutor方法可以創(chuàng)建一個(gè)具有并行級別的線程池,這是jdk 1.8新增的方法,可以為線程池設(shè)置并行級別,通過使用多個(gè)隊(duì)列來減少競爭,需要傳遞一個(gè)并行級別的參數(shù)。

    public static ExecutorService newWorkStealingPool(int parallelism) {
        return new ForkJoinPool
            (parallelism,
             ForkJoinPool.defaultForkJoinWorkerThreadFactory,
             null, true);
    }

以上就是java Executors工具類的相關(guān)方法使用創(chuàng)建的詳細(xì)內(nèi)容,更多關(guān)于java Executors工具類的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解SpringBoot同時(shí)可以處理多少請求

    詳解SpringBoot同時(shí)可以處理多少請求

    在日常操作中,相信很多人在SpringBoot能同時(shí)處理多少請求問題上存在疑惑,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-06-06
  • Java中BigDecimal使用注意避坑指南

    Java中BigDecimal使用注意避坑指南

    Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于Java中BigDecimal使用注意避坑的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Spring Boot與Docker部署實(shí)踐

    Spring Boot與Docker部署實(shí)踐

    這篇文章主要介紹了Spring Boot與Docker部署實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 詳解java 客戶端鏈接不上redis解決方案

    詳解java 客戶端鏈接不上redis解決方案

    這篇文章主要介紹了詳解java 客戶端鏈接不上redis解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • java非公平鎖知識點(diǎn)實(shí)例詳解

    java非公平鎖知識點(diǎn)實(shí)例詳解

    在本篇文章里小編給大家整理了一篇關(guān)于java非公平鎖知識點(diǎn)實(shí)例詳解,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-10-10
  • springmvc中下載中文文件名稱為下劃線的解決方案

    springmvc中下載中文文件名稱為下劃線的解決方案

    這篇文章主要介紹了springmvc中下載中文文件名稱為下劃線的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Netty分布式高性能工具類異線程下回收對象解析

    Netty分布式高性能工具類異線程下回收對象解析

    這篇文章主要介紹了Netty分布式高性能工具類異線程下回收對象解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • JAVA線程池監(jiān)控以及動(dòng)態(tài)調(diào)整示例詳解

    JAVA線程池監(jiān)控以及動(dòng)態(tài)調(diào)整示例詳解

    這篇文章主要為大家介紹了JAVA線程池監(jiān)控以及動(dòng)態(tài)調(diào)整示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Spring多線程的使用以及問題詳解

    Spring多線程的使用以及問題詳解

    在我們開發(fā)系統(tǒng)過程中,經(jīng)常會(huì)處理一些費(fèi)時(shí)間的任務(wù)(如:向數(shù)據(jù)庫中插入大量數(shù)據(jù)),這個(gè)時(shí)候就就需要使用多線程,下面這篇文章主要給大家介紹了關(guān)于Spring多線程的使用以及問題的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • SpringBoot使用thymeleaf實(shí)現(xiàn)一個(gè)前端表格方法詳解

    SpringBoot使用thymeleaf實(shí)現(xiàn)一個(gè)前端表格方法詳解

    Thymeleaf是一個(gè)現(xiàn)代的服務(wù)器端 Java 模板引擎,適用于 Web 和獨(dú)立環(huán)境。Thymeleaf 的主要目標(biāo)是為您的開發(fā)工作流程帶來優(yōu)雅的自然模板,本文就來用它實(shí)現(xiàn)一個(gè)前端表格,感興趣的可以了解一下
    2022-10-10

最新評論

临沂市| 鄂托克前旗| 永康市| 丹棱县| 江山市| 敦煌市| 安达市| 泸定县| 贵阳市| 丰台区| 通山县| 双鸭山市| 长子县| 长寿区| 新源县| 铜陵市| 堆龙德庆县| 兰西县| 龙岩市| 花垣县| 英超| 禹州市| 宜州市| 邢台县| 额济纳旗| 蒙阴县| 监利县| 利川市| 济源市| 上饶市| 西昌市| 南丹县| 平邑县| 乳山市| 盐城市| 凌海市| 平陆县| 南昌县| 包头市| 福海县| 紫金县|