引用官方原文:
(2)履行类
做好了基类就可以开端调用了,调用时起首我们须要Fork/Join线程池ForkJoinPool,然后向线程池中提交一个ForkJoinTask并获得结不雅。ForkJoinPool的submit办法的入参是一个ForkJoinTask,返回值也是一个ForkJoinTask,它供给一个get办法可以获取到履行结不雅。
- ForkJoinPool pool = new ForkJoinPool();
- // 提交可分化的ForkJoinTask义务
- ForkJoinTask<List<String>> future = pool.submit(forkJoinService);
- System.out.println(future.get());
- // 封闭线程池
- pool.shutdown();
就如许我们就完成了一个简单的Fork/Join的开辟。
提示:Java8中java.util.Arrays的parallelSort()办法和java.util.streams包中封装的办法也都用到了Fork/Join。(细心的读者可能留意到我在Fork/Join中也有效到stream,所以其拭魅这个Fork/Join是多余的,因为stream已经实现了Fork/Join,不过这只是一个Demo展示,没有任何实际用处也就无所谓了)
One such implementation, introduced in Java SE 8, is used by the java.util.Arrays class for its parallelSort() methods. These methods are similar to sort(), but leverage concurrency via the fork/join framework. Parallel sorting of large arrays is faster than sequential sorting when run>附完全代码以便今后参考:
1. 定义抽象类(用于拓展,词攀例中没有实际感化,可以不定义词攀类):
- import java.util.concurrent.RecursiveTask;
- /**
- * Description: ForkJoin接口
- * Designer: jack
- * Date: 2017/8/3
- * Version: 1.0.0
- */
- public abstract class ForkJoinService<T> extends RecursiveTask<T>{
- @Override
- protected abstract T compute();
- }
2. 定义基类
- import java.util.List;
- import java.util.stream.Collectors;
推荐阅读
Gartner公布2017年全球云存储魔力象限:阿里云跻身四强 全球前四
图1-2017年Gartner全球云存储魔力象限图 据媒体报道,国际有名调研机构Gartner近日颁布了2017年全球云计算云存储魔力象限。阿里云的云存储成长敏捷,与AWS、Microsoft、Google合营跻身这一>>>详细阅读
本文标题:浅谈Java的Fork/Join并发框架
地址:http://www.17bianji.com/lsqh/36553.html
1/2 1