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

Java8并行流中自定義線程池操作示例

 更新時(shí)間:2019年05月03日 14:41:14   作者:lyuharvey  
這篇文章主要介紹了Java8并行流中自定義線程池操作,結(jié)合實(shí)例形式分析了并行流的相關(guān)概念、定義及自定義線程池的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java8并行流中自定義線程池操作。分享給大家供大家參考,具體如下:

1.概覽

java8引入了流的概念,流是作為一種對(duì)數(shù)據(jù)執(zhí)行大量操作的有效方式。并行流可以被包含于支持并發(fā)的環(huán)境中。這些流可以提高執(zhí)行性能-以犧牲多線程的開銷為代價(jià)

在這篇短文中,我們將看一下 Stream API的最大限制,同時(shí)看一下如何讓并行流和線程池實(shí)例(ThreadPool instance)一起工作。

2.并行流Parallel Stream

我們先以一個(gè)簡單的例子來開始-在任一個(gè)Collection類型上調(diào)用parallelStream方法-它將返回一個(gè)可能的并行流。

@Test
publicvoidgivenList_whenCallingParallelStream_shouldBeParallelStream(){
  List aList = newArrayList<>();
  Stream parallelStream = aList.parallelStream();
  assertTrue(parallelStream.isParallel());
}

這樣的流的默認(rèn)處理流程是使用ForkJoinPool.commonPool(),這是一個(gè)被整個(gè)應(yīng)用程序所共享的線程池。

3.自定義線程池

在處理流的時(shí)候,我們可以傳遞自定義一個(gè)線程池。下面的例子中,我們有一個(gè)并行流,這個(gè)并行流使用了一個(gè)自定義的線程池去計(jì)算1到 1,000,000的和:

@Testpublic void giveRangeOfLongs_whenSummedInParallel_shouldBeEqualToExpectedTotal() throws InterruptedException, ExecutionException { long firstNum = 1; long lastNum = 1_000_000; List aList = LongStream.rangeClosed(firstNum, lastNum).boxed()
   .collect(Collectors.toList());
  ForkJoinPool customThreadPool = new ForkJoinPool(4);
  long actualTotal = customThreadPool.submit(
   () -> aList.parallelStream().reduce(0L, Long::sum)).get();
  assertEquals((lastNum + firstNum) * lastNum / 2, actualTotal);
}

我們使用ForkJoinPool的構(gòu)造方法并設(shè)定并行級(jí)別為4去創(chuàng)建一個(gè)線程池。要想確定不同環(huán)境的最優(yōu)值(optimal),我們需要試驗(yàn)一下。一個(gè)好的做法就是,基于你CPU的核數(shù)來確定并行級(jí)別的數(shù)值。

4.總結(jié)

我們簡要地看了一下,如何使用一個(gè)自定義的Thread Pool運(yùn)行并行流。只要在正確的環(huán)境中配置了合適的平行級(jí)別,就能在確定的情況下獲得較高的執(zhí)行性能。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進(jìn)程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java如何實(shí)現(xiàn)上傳文件到服務(wù)器指定目錄

    Java如何實(shí)現(xiàn)上傳文件到服務(wù)器指定目錄

    這篇文章主要介紹了Java如何實(shí)現(xiàn)上傳文件到服務(wù)器指定目錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)

    jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)

    Jmeter用于接口測試時(shí),后一個(gè)接口經(jīng)常需要用到前一次接口返回的結(jié)果,本文主要介紹了jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Springboot熱加載JAR包的實(shí)現(xiàn)方法

    Springboot熱加載JAR包的實(shí)現(xiàn)方法

    SpringBoot作為一個(gè)開發(fā)快速、部署方便的微服務(wù)框架,具有自動(dòng)配置、約定優(yōu)于配置的特點(diǎn),能夠極大地提高開發(fā)效率,它提供了豐富的擴(kuò)展點(diǎn),非常適合實(shí)現(xiàn)動(dòng)態(tài)加載Jar包的功能,本文將深入探討如何在SpringBoot應(yīng)用中實(shí)現(xiàn)動(dòng)態(tài)加載Jar包的方案,感興趣的朋友一起看看吧
    2024-04-04
  • Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序

    Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序

    這篇文章主要介紹了Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JAVA(MAVEN項(xiàng)目)添加JUnit依賴配置全過程

    JAVA(MAVEN項(xiàng)目)添加JUnit依賴配置全過程

    在Maven項(xiàng)目中進(jìn)行單元測試是確保代碼質(zhì)量的重要步驟,本教程提供SpringBoot和微服務(wù)平臺(tái)適用的單元測試方法,包括環(huán)境準(zhǔn)備、創(chuàng)建測試類、JUnit簡介及注解使用,環(huán)境準(zhǔn)備涉及引入依賴和安裝JUnit插件,測試類創(chuàng)建可通過快捷鍵或手動(dòng)添加@Test注解來實(shí)現(xiàn)
    2024-10-10
  • SpringBoot靜態(tài)資源目錄訪問

    SpringBoot靜態(tài)資源目錄訪問

    今天小編就為大家分享一篇關(guān)于SpringBoot靜態(tài)資源目錄訪問,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • SpringBoot實(shí)現(xiàn)JWT動(dòng)態(tài)密鑰輪換的示例詳解

    SpringBoot實(shí)現(xiàn)JWT動(dòng)態(tài)密鑰輪換的示例詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)JWT動(dòng)態(tài)密鑰輪換的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-10-10
  • Spring?Cloud?Alibaba微服務(wù)組件Sentinel實(shí)現(xiàn)熔斷限流

    Spring?Cloud?Alibaba微服務(wù)組件Sentinel實(shí)現(xiàn)熔斷限流

    這篇文章主要為大家介紹了Spring?Cloud?Alibaba微服務(wù)組件Sentinel實(shí)現(xiàn)熔斷限流過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Java命名規(guī)范

    Java命名規(guī)范

    本文主要介紹了Java命名規(guī)范。具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • 總結(jié)Java集合類操作優(yōu)化經(jīng)驗(yàn)

    總結(jié)Java集合類操作優(yōu)化經(jīng)驗(yàn)

    本文主要介紹的就是集合框架的使用經(jīng)驗(yàn),告訴大家如何高效、方便地管理對(duì)象,所有代碼基于JDK7,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

海口市| 安溪县| 定安县| 福清市| 贺兰县| 右玉县| 天祝| 肃宁县| 平乡县| 阿荣旗| 鲜城| 吴堡县| 连城县| 普安县| 留坝县| 望城县| 泽州县| 德保县| 河津市| 青川县| 绩溪县| 玉龙| 来宾市| 调兵山市| 青阳县| 图木舒克市| 奉贤区| 巴中市| 鄂伦春自治旗| 河东区| 田阳县| 九龙城区| 诏安县| 大方县| 新平| 玉环县| 会宁县| 来宾市| 玉溪市| 墨玉县| 汉沽区|