作家
登录

浅谈Java的Fork/Join并发框架

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

Java

1. Fork/Join是什么

  Oracle的官方给出的定义是:Fork/Join框架是一个实现了ExecutorService接口的多线程处理器。它可以把一个大年夜的义务划分为若干个小的义务并发履行,充分应用可用的资本,进而进步应用的履行效力。

  Fork/Join实现了ExecutorService,所以它的义务也须要放在线程池中履行。它的不合在于它应用了工作窃取算法,余暇的线程可以大年夜满负荷的线程中窃取义务来协助履行。(我小我懂得的工作窃取大年夜意就是:因为线程池中的每个线程都有一个队列,并且线程间互不影响。那么线程每次都大年夜本身的义务队列的头晨获取一个义务出来履行。如不雅某个时刻一个线程的义务队列空了,而其余的线程义务队列中还有义务,那么这个线程就会大年夜其他线程的义务队列中取一个义务出来协助履行。就像盗取了其他人的工作一样)

Fork/Join框架的核心是持续了AbstractExecutorService的ForkJoinPool类,它包管了工作窃取算法和ForkJoinTask的┞俘常工作。

  1. import java.util.ArrayList; 
  2. import java.util.Arrays; 
  3. import java.util.List; 
  4. import java.util.concurrent.ExecutionException; 
  5. import java.util.concurrent.ForkJoinPool; 
  6. import java.util.concurrent.ForkJoinTask; 
  7.  
  8. /** 
  9.  * Description: Fork/Join履行类 
  10.  * Designer: jack 
  11.  * Date: 2017/8/3 
  12.  * Version: 1.0.0 
  13.  */ 
  14. public class Test { 
  15.  
  16.     public static void main(String args[]) throws ExecutionException, InterruptedException { 
  17.  
  18.         String[] strings = {"a""ah""b""ba""ab""ac""sd""fd""ar""te""se""te"
  19.                 "sdr""gdf""df""fg""gh""oa""ah""qwe""re""ty""ui"}; 
  20.         List<String> stringList = new ArrayList<>(Arrays.asList(strings)); 
  21.  
  22.         ForkJoinPool pool = 
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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