<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仓本 | 久草这里只有精品| 亚洲精品中文字幕乱码| 99精品国产高清一区二区三区| 精品国产自在现线久久| 91精品国产色综合久久不卡蜜 | 日韩精品人妻一区二区中文八零| 久久精品麻豆日日躁夜夜躁| 无码人妻精品中文字幕免费 | 亚洲Av无码精品色午夜| 亚洲精品动漫人成3d在线 | 99精品一区二区三区无码吞精| 囯产精品久久久久久久久蜜桃| 国产精品久久国产精品99| 久久精品国产日本波多野结衣| 国产精品免费大片| 久久精品亚洲乱码伦伦中文| 国产精品主播叶子闺蜜| 99精品国产一区二区三区2021| 久久国产精品2020盗摄| 久久国产精品国语对白| 四虎精品亚洲一区二区三区| 精品日产a一卡2卡三卡4卡乱| 2020国产精品视频| 久热精品视频在线观看99小说| 久夜色精品国产一区二区三区 | 午夜亚洲av永久无码精品| 色综合99久久久无码国产精品| 久久久久亚洲精品日久生情 | 久久久久国产精品人妻| 久久水蜜桃亚洲av无码精品麻豆| 国色精品va在线观看免费视频| 国产69精品久久久久99尤物| 国产aⅴ精品一区二区三区久久| 精品国产粉嫩内射白浆内射双马尾| 亚欧在线精品免费观看一区| 精品无码人妻一区二区免费蜜桃| 国产精品美女久久久久久2018| 7777久久久国产精品消防器材| 久久国产精品二国产精品|