<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內(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 97精品国产91久久久久久久| 精品无码黑人又粗又大又长| 久久亚洲国产精品五月天婷| 国产精品91视频| 99精品免费视频| 国产精品成人自拍| 91麻豆精品国产91久久久久久 | 国产精品99久久不卡| 亚洲国产精品无码中文字| 午夜国产精品久久久久| 精品国产一二三区在线影院| 国产精品污WWW在线观看| 狠狠热精品免费观看| 中文字幕国产精品| 久久精品国1国二国三| 亚洲日韩精品无码一区二区三区| 国产精品秘入口18禁麻豆免会员| 久久99久久99精品免视看动漫| 不卡精品国产_亚洲人成在线| 国产精品原创巨作av| 99精品众筹模特私拍在线| 亚洲国产精品va在线播放| 亚洲国产精品无码久久久久久曰| 亚洲AV无码成人精品区狼人影院 | 国产l精品国产亚洲区在线观看| 日韩精品电影一区亚洲| 久久久久无码精品国产h动漫| 亚洲精品韩国美女在线| 久久精品亚洲一区二区| 99精品国产99久久久久久97| 黄大色黄美女精品大毛片| 久久久精品人妻久久影视| 国产精品一久久香蕉产线看| 久久久免费精品re6| 日本一区精品久久久久影院| 国语自产精品视频在线观看| 亚洲国产成人精品女人久久久 | 国产成人无码精品久久久久免费| 国产微拍精品一区二区| 99在线精品免费视频九九视| 亚洲第一精品电影网|