日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fork/Join框架

發布時間:2025/4/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fork/Join框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Fork就是把大任務切分為若干子任務并行執行,Join就是合并這些子任務的執行結果,最后得到這個大任務的結果。

要使用ForkJoin框架,必須首先創建ForkJoin任務。它提供在任務中執行fork()和join()操作的機制。

Fork/Join框架提供了以下兩個子類:

1:RecursiveAction:用于沒有返回結果的任務

2:RecursiveTask:用于有返回結果的任務

ForkJoinPool:ForkJoinTask需要通過ForkJoinPool來執行

ForkJoinPool由ForkJoinTask數組和ForkJoinWorkerThread數組組成,ForkJoinTask數組負責將存放程序提交給ForkJoinPool的任務,而ForkJoinWorkerThread數組負責執行這些任務。

計算 1+2+3+4+......+100的結果示例:

1 class CountTask extends RecursiveTask<Integer>{//因為是有返回,所以繼承RecursiveTask 2 private static final int THRESHOLD = 10;//閾值 3 private int start; 4 private int end; 5 public CountTask(int start, int end){ 6 this.start = start; 7 this.end = end; 8 } 9 @Override 10 protected Integer compute(){ 11 int sum = 0; 12 //如果任務足夠小就計算任務 13 boolean canCompute = (end - start) <= THRESHOLD; 14 if (canCompute){ 15 for (int i = start; i <= end; i++){ 16 sum += i; 17 } 18 }else { 19 //如果任務大于閾值,就分裂成兩個子任務計算 20 int middle = (start + end) / 2; 21 CountTask leftTask = new CountTask(start, middle); 22 CountTask rightTask = new CountTask(middle + 1, end); 23 //執行子任務 24 leftTask.fork(); 25 rightTask.fork(); 26 //等待子任務執行完,并得到計算結果 27 int leftResult = leftTask.join(); 28 int rightResult = rightTask.join(); 29 //合并子任務 30 sum = leftResult + rightResult; 31 } 32 return sum; 33 } 34 public static void main(String[] args){ 35 ForkJoinPool forkJoinPool = new ForkJoinPool(); 36 //生成一個計算任務,負責計算1+2+3+4 37 CountTask task = new CountTask(1, 100); 38 //執行子任務 39 Future<Integer> result = forkJoinPool.submit(task); 40 try { 41 System.out.println(result.get()); 42 }catch (InterruptedException e){ 43 }catch (ExecutionException e){ 44 } 45 } 46 }

ForkJoinTask與一般任務的主要區別在于它實現compute方法。

?

轉載于:https://www.cnblogs.com/xcyz/p/8030126.html

總結

以上是生活随笔為你收集整理的Fork/Join框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。