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

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è)簡(jiǎn)單的例子來開始-在任一個(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é)

我們簡(jiǎn)要地看了一下,如何使用一個(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深度克隆與淺度克隆的區(qū)別詳解

    解析JAVA深度克隆與淺度克隆的區(qū)別詳解

    本篇文章是對(duì)JAVA深度克隆與淺度克隆的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 解決Mybatis中mapper.xml文件update,delete及insert返回值問題

    解決Mybatis中mapper.xml文件update,delete及insert返回值問題

    這篇文章主要介紹了解決Mybatis中mapper.xml文件update,delete及insert返回值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • springmvc fastjson 反序列化時(shí)間格式化方法(推薦)

    springmvc fastjson 反序列化時(shí)間格式化方法(推薦)

    下面小編就為大家?guī)硪黄猻pringmvc fastjson 反序列化時(shí)間格式化方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • synchronized及JUC顯式locks?使用原理解析

    synchronized及JUC顯式locks?使用原理解析

    這篇文章主要為大家介紹了synchronized及JUC顯式locks?使用原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • SpringMVC中的HttpServletRequestWrapper使用解析

    SpringMVC中的HttpServletRequestWrapper使用解析

    這篇文章主要介紹了SpringMVC中的HttpServletRequestWrapper使用解析,HttpServletRequestWrapper 采用裝飾者模式對(duì)HttpServletRequest進(jìn)行包裝,我們可以通過繼承HttpServletRequestWrapper類去重寫getParameterValues,getParameter等方法,需要的朋友可以參考下
    2024-01-01
  • 基于Java設(shè)計(jì)一個(gè)高并發(fā)的秒殺系統(tǒng)

    基于Java設(shè)計(jì)一個(gè)高并發(fā)的秒殺系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于Java設(shè)計(jì)一個(gè)高并發(fā)的秒殺系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下
    2023-10-10
  • SpringCloud Eureka服務(wù)發(fā)現(xiàn)實(shí)現(xiàn)過程

    SpringCloud Eureka服務(wù)發(fā)現(xiàn)實(shí)現(xiàn)過程

    這篇文章主要介紹了SpringCloud Eureka服務(wù)發(fā)現(xiàn)實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java接入支付寶授權(quán)第三方登錄的完整步驟

    Java接入支付寶授權(quán)第三方登錄的完整步驟

    不管是支付寶支付,還是微信支付,還是銀聯(lián)支付等,大部分的支付流程都是相似的,這篇文章主要給大家介紹了關(guān)于Java接入支付寶授權(quán)第三方登錄的相關(guān)資料,使用支付寶的沙盒環(huán)境示例,需要的朋友可以參考下
    2021-07-07
  • Spring讀取配置文件多種方式詳解

    Spring讀取配置文件多種方式詳解

    在使用spring或springboot項(xiàng)目開發(fā)中,難免會(huì)涉及到讀取配置文件的各種配置參數(shù)的情況,因?yàn)楫?dāng)項(xiàng)目的規(guī)模上去之后,在單個(gè)配置文件中維護(hù)所有的配置信息很難滿足實(shí)際的需要,所以本文給大家介紹了Spring讀取配置文件多種方式,需要的朋友可以參考下
    2024-04-04
  • 關(guān)于Spring Actuator的簡(jiǎn)單測(cè)試

    關(guān)于Spring Actuator的簡(jiǎn)單測(cè)試

    這篇文章主要介紹了關(guān)于Spring Actuator的簡(jiǎn)單測(cè)試,Spring-Actuator 是spring下的程序監(jiān)控系統(tǒng),通過簡(jiǎn)單的配置就可以查看程序的相關(guān)信息,本文提供了相關(guān)配置,需要的朋友可以參考下
    2023-10-10

最新評(píng)論