<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></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视频精品全部在线观看| 国产高清精品在线| 无码国产精品一区二区免费I6| 久久99热成人精品国产| 久久久久一级精品亚洲国产成人综合AV区| 亚洲精品无码成人| 91精品国产免费| 亚洲国产精品无码中文字| 亚洲性日韩精品一区二区三区 | 日韩精品无码视频一区二区蜜桃| 日韩精品无码区免费专区| 亚洲欧洲国产经精品香蕉网| 久热综合在线亚洲精品| 97久久综合精品久久久综合| 精品国内自产拍在线视频| 国产午夜精品一区二区三区极品| 久久久无码精品亚洲日韩京东传媒| 久久r热这里有精品视频| 久久精品综合一区二区三区| 人妻无码久久精品| 蝌蚪久热精品视频在线观看| 免费精品国产自产拍在线观看图片 | 精品日韩亚洲AV无码| 欧洲精品视频在线观看| 久久夜色撩人精品国产小说| 国产99久久九九精品无码| 六月婷婷精品视频在线观看| 国产馆精品推荐在线观看| 国产精品亚洲lv粉色| 亚洲精品无码久久久久A片苍井空| 国产精品中文字幕在线观看| 97精品在线视频| 久久热这里只有精品在线观看| 亚洲永久永久永久永久永久精品| 国产精品对白刺激久久久| 精品久久久久久久久中文字幕| 日韩欧国产精品一区综合无码| 国产一区二区精品久久| 久久99精品久久久久久| 国产精品国产三级国产普通话|