<th id="wu2k2"><s id="wu2k2"></s></th> <blockquote id="wu2k2"></blockquote>
  • <tr id="wu2k2"></tr>
  • <samp id="wu2k2"><tbody id="wu2k2"></tbody></samp><samp id="wu2k2"><tbody id="wu2k2"></tbody></samp>
  • 更多精彩內(nèi)容,歡迎關(guān)注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    當(dāng)前位置:首頁 科技百科 java fork

    java fork

    文檔

    java fork

    fork / join通過分而治之的方法嘗試使用所有可用的處理器內(nèi)核來幫助加速并行處理 ,意味著框架“forks”遞歸地將任務(wù)分解為較小的獨(dú)立子任務(wù),直到它們足夠簡單以便異步執(zhí)行。
    推薦度:
    導(dǎo)讀fork / join通過分而治之的方法嘗試使用所有可用的處理器內(nèi)核來幫助加速并行處理 ,意味著框架“forks”遞歸地將任務(wù)分解為較小的獨(dú)立子任務(wù),直到它們足夠簡單以便異步執(zhí)行。

    很多朋友都想知道java fork有什么用?下面就一起來了解一下吧~

    fork / join通過分而治之的方法嘗試使用所有可用的處理器內(nèi)核來幫助加速并行處理 ,意味著框架“forks”遞歸地將任務(wù)分解為較小的獨(dú)立子任務(wù),直到它們足夠簡單以便異步執(zhí)行。

    其中所有子任務(wù)的結(jié)果以遞歸方式連接到單個結(jié)果中,或者在返回void的任務(wù)的情況下,程序只是等待直到執(zhí)行完每個子任務(wù)。

    為了提供有效的并行執(zhí)行,fork / join框架使用一個名為ForkJoinPool的線程池,它管理ForkJoinWorkerThread類型的工作線程。

    RecursiveAction - 一個例子

    在下面的示例中,要處理的工作單元由稱為工作負(fù)載的String表示。出于演示目的,該任務(wù)是一個荒謬的任務(wù):它只是j簡單的轉(zhuǎn)為大寫并打印它。

    為了演示框架的分支行為,如果workload.length()?大于指定的閾值則使用createSubtask()方法,該示例將分割任務(wù)。

    String被遞歸地劃分為子串,創(chuàng)建基于這些子串的CustomRecursiveTask實(shí)例。

    因此,該方法返回List 。

    使用invokeAll()方法將列表提交給ForkJoinPool:

    public?class?CustomRecursiveAction?extends?RecursiveAction?{
    ????private?String?workload?=?"";
    ????private?static?final?int?THRESHOLD?=?4;
    ????private?static?Logger?logger?=?
    ??????Logger.getAnonymousLogger();
    ????public?CustomRecursiveAction(String?workload)?{
    ????????this.workload?=?workload;
    ????}
    ????@Override
    ????protected?void?compute()?{
    ????????if?(workload.length()?>?THRESHOLD)?{
    ????????????ForkJoinTask.invokeAll(createSubtasks());
    ????????}?else?{
    ???????????processing(workload);
    ????????}
    ????}
    ????private?List?createSubtasks()?{
    ????????List?subtasks?=?new?ArrayList<>();
    ????????String?partOne?=?workload.substring(0,?workload.length()?/?2);
    ????????String?partTwo?=?workload.substring(workload.length()?/?2,?workload.length());
    ????????subtasks.add(new?CustomRecursiveAction(partOne));
    ????????subtasks.add(new?CustomRecursiveAction(partTwo));
    ????????return?subtasks;
    ????}
    ????private?void?processing(String?work)?{
    ????????String?result?=?work.toUpperCase();
    ????????logger.info("This?result?-?("?+?result?+?")?-?was?processed?by?"
    ??????????+?Thread.currentThread().getName());
    ????}
    }

    此模式可用于開發(fā)自己的RecursiveAction類,如若要執(zhí)行此操作,請創(chuàng)建一個表示工作總量的對象,選擇合適的閾值,定義分割工作的方法,并定義執(zhí)行工作的方法。

    文檔

    java fork

    fork / join通過分而治之的方法嘗試使用所有可用的處理器內(nèi)核來幫助加速并行處理 ,意味著框架“forks”遞歸地將任務(wù)分解為較小的獨(dú)立子任務(wù),直到它們足夠簡單以便異步執(zhí)行。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關(guān)推薦
    java ecc加密 java formatter java echarts java ehcache java email java empty java encapsulation java future java generator java enhancer java generic java enterprise java environment java epoll java error java escape java event java exchange java execute 微信群怎么找 java foreach循環(huán) java ear java flume java dynamic java dto java drools java flink java dowhile java flatmap java findfirst java fileinputstream java file.exists() java dockerfile java field獲取值 java field java divide java feign java fastjson java dict java development
    Top 亚洲精品国产成人影院| 久久国产精品77777| 国产成人综合日韩精品婷婷九月| 久久精品国产精品亚洲艾草网 | 中文字幕精品一区二区日本| 99精品免费视品| 国产午夜精品1区2区3福利| 模特私拍国产精品久久| 久久国产免费观看精品3| 国产精品日本一区二区不卡视频 | 久久久99精品成人片| 色欲久久久天天天综合网精品| 在线精品一区二区三区电影| 精品日产卡一卡二卡麻豆| 久久青青成人亚洲精品| 在线精品亚洲一区二区三区| 亚洲人成国产精品无码| 精品无码中出一区二区| 国内精品视频一区二区三区| 亚洲午夜精品久久久久久app| 91精品国产麻豆国产自产在线| 亚欧无码精品无码有性视频| 国产精品资源在线观看| 国语自产偷拍精品视频偷| 国产精品大尺度尺度视频| 91精品成人福利在线播放| 99在线热播精品免费99热| 国产精品99久久久久久猫咪 | 97热久久免费频精品99| 精品国产一区二区三区麻豆| 91大神精品视频| 3d精品重口littleballerina| 色国产精品一区在线观看| 久久香综合精品久久伊人| 亚洲国产精品热久久| 爽爽精品dvd蜜桃成熟时电影院| 伊人久久精品线影院| 99精品视频99| 国产91精品一区二区麻豆网站| 国产a视频精品免费观看| 2021久久国自产拍精品|