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

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

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

通過(guò)Executors類(lèi)創(chuàng)建線(xiàn)程池

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

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

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

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

unit:也是針對(duì)救急線(xiàn)程,表示keepAliveTime的核心單位;

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

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

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

??newCachedThreadPool方法

調(diào)用Executors工具類(lèi)的newCachedThreadPool方法可以創(chuàng)建一個(gè)可緩存的線(xiàn)程池,核心線(xiàn)程數(shù)為0,當(dāng)線(xiàn)程池中的線(xiàn)程數(shù)量超過(guò)了運(yùn)行任務(wù)所需要的線(xiàn)程數(shù),那么可以回收空閑的線(xiàn)程,默認(rèn)每60s回收;同時(shí)當(dāng)任務(wù)增加的時(shí)候,線(xiàn)程池又可以創(chuàng)建新的線(xiàn)程來(lái)處理任務(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工具類(lèi)的newFixThreadPool方法可以創(chuàng)建一個(gè)固定長(zhǎng)度大小的線(xiàn)程池,線(xiàn)程池中的線(xiàn)程都是核心線(xiàn)程,也就是創(chuàng)建的線(xiàn)程池中的線(xiàn)程數(shù)量是固定的,能夠控制線(xiàn)程池的最大并發(fā)數(shù)。

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

當(dāng)線(xiàn)程池達(dá)到最大線(xiàn)程數(shù)時(shí),線(xiàn)程數(shù)量會(huì)保持不變,一旦某個(gè)線(xiàn)程出現(xiàn)異常,線(xiàn)程池會(huì)補(bǔ)充一個(gè)線(xiàn)程。提交到線(xiàn)程池的任務(wù)過(guò)多可能會(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工具類(lèi)的newScheduledThreadPool方法可以創(chuàng)建一個(gè)可以周期性執(zhí)行任務(wù)的線(xiàn)程池,也能夠定時(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工具類(lèi)的newSingleThreadExecutor方法可以創(chuàng)建只有一個(gè)工作線(xiàn)程的線(xiàn)程池,相當(dāng)于只有一個(gè)線(xiàn)程在工作。能夠保證任務(wù)按照先進(jìn)先出的順序,或者優(yōu)先級(jí)順序執(zhí)行任務(wù)。就像單線(xiàn)程在串行執(zhí)行任務(wù)一樣,但是也有些區(qū)別,如果這個(gè)唯一的線(xiàn)程出現(xiàn)了異常,線(xiàn)程池會(huì)創(chuàng)建一個(gè)新的線(xiàn)程來(lái)代替它。

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

??newSingleThreadScheduledExecutor方法

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

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

??newWorkStealingPool方法

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

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

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

相關(guān)文章

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

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

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

    Java中BigDecimal使用注意避坑指南

    Java在java.math包中提供的API類(lèi)BigDecimal,用來(lái)對(duì)超過(guò)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í)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 詳解java 客戶(hù)端鏈接不上redis解決方案

    詳解java 客戶(hù)端鏈接不上redis解決方案

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

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

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

    springmvc中下載中文文件名稱(chēng)為下劃線(xiàn)的解決方案

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

    Netty分布式高性能工具類(lèi)異線(xiàn)程下回收對(duì)象解析

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

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

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

    Spring多線(xiàn)程的使用以及問(wèn)題詳解

    在我們開(kāi)發(fā)系統(tǒng)過(guò)程中,經(jīng)常會(huì)處理一些費(fèi)時(shí)間的任務(wù)(如:向數(shù)據(jù)庫(kù)中插入大量數(shù)據(jù)),這個(gè)時(shí)候就就需要使用多線(xiàn)程,下面這篇文章主要給大家介紹了關(guān)于Spring多線(xiàn)程的使用以及問(wèn)題的相關(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)是為您的開(kāi)發(fā)工作流程帶來(lái)優(yōu)雅的自然模板,本文就來(lái)用它實(shí)現(xiàn)一個(gè)前端表格,感興趣的可以了解一下
    2022-10-10

最新評(píng)論

慈利县| 宁明县| 丹棱县| 湘潭市| 延川县| 石渠县| 岳西县| 双鸭山市| 武川县| 武穴市| 清水河县| 乐昌市| 宜兰市| 宜昌市| 九龙坡区| 云霄县| 双流县| 迁西县| 云和县| 青冈县| 汽车| 安丘市| 浦县| 新安县| 郓城县| 塔城市| 阳江市| 营山县| 即墨市| 松滋市| 中宁县| 邵阳县| 奇台县| 安义县| 广宗县| 米泉市| 靖宇县| 彰化市| 桐梓县| 乌鲁木齐市| 鄂托克旗|