作家
登录

浅谈Java的Fork/Join并发框架

作者: 来源: 2017-08-04 15:02:12 阅读 我要评论

        ForkJoinTest left = new ForkJoinTest(list, this.start, middle, threshold); 
  •         ForkJoinTest right = new ForkJoinTest(list, middle, end, threshold); 
  •         // 并行履行两个“小义务” 
  •         left.fork(); 
  •         right.fork(); 
  •         // 把两个“小义务”的结不雅归并起来 
  •         List<String> join = left.join(); 
  •         join.addAll(right.join()); 
  •         return join; 
  •     } 
  • 引用官方原文:


    (2)履行类

    做好了基类就可以开端调用了,调用时起首我们须要Fork/Join线程池ForkJoinPool,然后向线程池中提交一个ForkJoinTask并获得结不雅。ForkJoinPool的submit办法的入参是一个ForkJoinTask,返回值也是一个ForkJoinTask,它供给一个get办法可以获取到履行结不雅。

    1. ForkJoinPool pool = new ForkJoinPool(); 
    2. // 提交可分化的ForkJoinTask义务 
    3. ForkJoinTask<List<String>> future = pool.submit(forkJoinService); 
    4. System.out.println(future.get()); 
    5. // 封闭线程池 
    6. 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. 定义抽象类(用于拓展,词攀例中没有实际感化,可以不定义词攀类):

    1. import java.util.concurrent.RecursiveTask; 
    2.  
    3. /** 
    4.  * Description: ForkJoin接口 
    5.  * Designer: jack 
    6.  * Date: 2017/8/3 
    7.  * Version: 1.0.0 
    8.  */ 
    9. public abstract class ForkJoinService<T> extends RecursiveTask<T>{ 
    10.     @Override 
    11.     protected abstract T compute(); 

    2. 定义基类

    1. import java.util.List; 
    2. import java.util.stream.Collectors; 
    3.  

    4.   推荐阅读

        Gartner公布2017年全球云存储魔力象限:阿里云跻身四强 全球前四

      图1-2017年Gartner全球云存储魔力象限图 据媒体报道,国际有名调研机构Gartner近日颁布了2017年全球云计算云存储魔力象限。阿里云的云存储成长敏捷,与AWS、Microsoft、Google合营跻身这一>>>详细阅读


      本文标题:浅谈Java的Fork/Join并发框架

      地址:http://www.17bianji.com/lsqh/36553.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)