广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州分享Java Fork/Join框架实例_北大青鸟IT学校

作者:邓华发布时间:2021-05-12分类:Java技术浏览:804


导读:通过上一篇文章,相信大家对Java Fork/Join框架有了一定的了解,那么下面惠州北大青鸟老师给大家分享Java Fork/Join框架的实例,希望能帮助大家更好地理解Java Fork/Join框架。

通过上一篇文章,相信大家对Java Fork/Join框架有了一定的了解,那么下面惠州北大青鸟老师给大家分享Java Fork/Join框架的实例,希望能帮助大家更好地理解Java Fork/Join框架。

实例

ForkJoinTask类的以下两个方法在任务执行期间提供了两个重要的功能:

fork()方法从异步执行的任务启动一个新的子任务。join()方法让任务等待另一个任务完成。

import java.util.ArrayList;iJava Fork/Join框架mport java.util.List;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.RecursiveTask;public class Main {  public static void main(String[] args) {
   ForkJoinPool pool = new ForkJoinPool();
   IntSum task = new IntSum(3);    long sum = pool.invoke(task);
   System.out.println("Sum is " + sum);
 }
}class IntSum extends RecursiveTask<Long> {  private int count;  public IntSum(int count) {
   this.count = count;
 }

 @Override  protected Long compute() {    long result = 0;    if (this.count <= 0) {      return 0L;
   }else if (this.count == 1) {      return (long) this.getRandomInteger();
   }
   List<RecursiveTask<Long>> forks = new ArrayList<>();    for (int i = 0; i < this.count; i++) {
     IntSum subTask = new IntSum(1);
     subTask.fork(); // Launch the subtask      forks.add(subTask);
   }    // all subtasks finish and combine the result    for (RecursiveTask<Long> subTask : forks) {
     result = result + subTask.join();
   }    return result;
 }  public int getRandomInteger() {    return 2;
 }
}

上面的代码生成以下结果。

Sum is 6

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

Java17.jpg

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表