<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 久久99精品久久久久久综合| 国产区精品福利在线社区| 潮喷大喷水系列无码久久精品 | 精品乱人伦一区二区| 在线精品91青草国产在线观看| 国产乱子伦精品免费视频| 日韩精品无码成人专区| 午夜国产精品免费观看| 久久66久这里精品99| 国产亚洲精品拍拍拍拍拍| 大伊香蕉精品视频在线导航| 国产在线国偷精品产拍免费| 亚洲精品国产情侣av在线| 久久九九国产精品怡红院| 国产亚洲精品AA片在线观看不加载| 国产偷窥熟女精品视频大全 | 国产精品午夜爆乳美女视频| 免费精品国偷自产在线在线| 麻豆一区二区三区精品视频| 久久精品国产99精品最新| 蝌蚪久热精品视频在线观看| 国产精品亚洲片夜色在线| 99精品国产在这里白浆| 久久国产精品99久久久久久牛牛| 在线精品动漫一区二区无广告| 欧美日韩亚洲精品| 99精品国产一区二区三区2021 | 欧洲精品久久久av无码电影| 综合国产精品第一页| 日本精品久久久久久福利| 亚洲精品精华液一区二区| 久久久久久久久66精品片| 91成人午夜在线精品| 日本午夜精品视频在线观看| 2021国产精品久久精品| 久久亚洲精品国产亚洲老地址| 国产精品福利网站导航| 国产69精品久久久久777| 国产精品国产三级国产专播| 久久精品国产亚洲AV蜜臀色欲| 国产亚洲综合成人91精品|