当前位置: 首页 > wzjs >正文

无锡网站建设网络推广官方网站让第三方建设放心吗

无锡网站建设网络推广,官方网站让第三方建设放心吗,小程序开发成本,python培训视频教程对于线程池来说,其实本质就是一个生产者消费者的模式,而通过竞争的方式从队列中获取任务执行。本质上其实就是按照任务级别进行处理,但是对于一些可以分而治之的任务,传统的线程池没有办法分治处理。一是无法对大任务进行拆分&…

对于线程池来说,其实本质就是一个生产者消费者的模式,而通过竞争的方式从队列中获取任务执行。本质上其实就是按照任务级别进行处理,但是对于一些可以分而治之的任务,传统的线程池没有办法分治处理。一是无法对大任务进行拆分,对于某个任务只能由单线程执行;二是工作线程从队列中获取任务时存在竞争情况

对于分治的思想,在算法领域 归并排序、快速排序,以及大数据领域MapReduce背后的思想体现,具体来说就是把一个大问题可以拆分成多个相同的子问题,子问题可以进一步拆分,进一步可以求解,然后合并的过程。

分支任务的模型其实就是两部分,先进行任务的分解,然后在子任务的结果进行合并。
在这里插入图片描述

基本使用

ForkJoin其实就是两部分,Fork:任务分解,Join:结果合并。
框架层面包含两部分一部分就是分治任务的线程池ForkJoinPool,就是用于执行任务的线程池,另外就是将任务封装的起来的ForkJoinTask任务。

public class ForkJoinTest {public static void main(String[] args) {ForkJoinPool forkJoinPool = new ForkJoinPool(2);Finbonacci finbonacci = new Finbonacci(30);Integer result = forkJoinPool.invoke(finbonacci);System.out.println(result);Assert.notNull(result);}
}class Finbonacci extends RecursiveTask<Integer> {final int n;public Finbonacci(int n) {this.n = n;}// 递归任务@Overrideprotected Integer compute() {if (n <= 1) return n;Finbonacci f1 = new Finbonacci(n - 1);// 创建子任务f1.fork();Finbonacci f2 = new Finbonacci(n - 2);// 等待子任务结果,合并结果return f2.compute() + f1.join();}
}

工作原理

在这里插入图片描述
我们知道对于普通的ThreadPoolExecutor, 内部是有一个任务队列,多个线程进行从中获取任务执行。而对于ForkJoinPool来说内部有多个任务队列,当我们通过invoke() 或者submit提交任务的时候,ForkJoinPool会按照一定的路由规则把任务提交到一个任务队列中,对应的任务在执行过程中创建子任务,子任务会提交到工作线程对应的任务队列中。

这样就可以更细粒度的拆分任务队列,获取任务的效率更快。当有的工作线程没有任务时,会尝试回去其他任务的工作任务。这个过程就是工作窃取。

在这里插入图片描述
在这里插入图片描述
通过类图可以很清晰的看到,本质都是线程池的具体实现,这里不得不感叹 juc老爷子的设计思想,可以很好的在1.5版本的JUC结合。

核心流程图

在这里插入图片描述

应用场景

1.对于求解的问题可以分拆,但是需要考验程序员的分拆能力,容易引入逻辑BUG。
2.forkJoinPool适合计算密集型任务。不适合阻塞任务。
3.具体就是大规模数据计算,递归算法,文件 图片处理

http://www.dtcms.com/wzjs/789190.html

相关文章:

  • 做网站下载好素材之后怎么建造主页麻涌公司网站建设公司
  • 东莞企业营销型网站建设个人博客网站建设业务
  • 大学生帮别人做网站京东商城官方旗舰店
  • 网站运维可以做哪些做网站密云
  • html5响应式公司网站模版什么什么设计英文网站
  • 南昌二手网站开发方案塘厦 网站建设 百度推广
  • 西安学校网站建设报价全国做临期进口食品的网站
  • 自己有域名要怎么制作网站504 wordpress
  • 麻城网站建设饿了吗网站如何做
  • 唐山建设企业网站创新的常州做网站
  • 股票实时交易网站开发网站开发需要学习什么
  • 房屋租赁网站开发模版三顿半vi设计
  • 想开个网站卖衣服的怎么做网页设计作品展示 简单
  • 漳州微网站建设公司网站开发实习报告
  • 做视频解析网站是犯法的么wordpress 限时
  • 做网站 南京郑州seo招聘
  • 重庆市做网站的公司外贸网站主机选择
  • 邯郸怎么做网站维度网络做网站
  • 网站开发有哪些认证广东网站建设电话
  • 襄阳网站建设asp做网站和dw的区别
  • 沧州网站建设优化案例西安网站制作顶尖
  • 宁波网站建设优化的公司排名搭建一个网站的具体步骤
  • 济南网络建站模板企业服务包括哪些
  • 专业移动网站建设网站seo诊断技巧
  • 网站建设主要产品长沙新媒体营销
  • 网站项目报价单模板免费下载网站分站代理
  • 网站更换主机需要怎么做苏州手机网站制作
  • 手机网站制作教程软件做哪个视频网站赚钱的
  • 东莞企业做网站网页版微信可以发朋友圈吗
  • 个人博客网站模板源码设计网网站