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

南京网站建设与维护/各大免费推广网站

南京网站建设与维护,各大免费推广网站,广东省住房和城乡建设厅证件查询,做装饰材料的网站对于简单的并行任务可以通过"线程池 Future"方案来解决。如果任务额之间有聚合关系(AND聚合或者OR聚合)用CompletableFuture解决。批量的并行任务用CompletionService解决。 并发编程可以分为三个层面的问题: 分工,协作,互斥。 F…
  • 对于简单的并行任务可以通过"线程池 Future"方案来解决。
  • 如果任务额之间有聚合关系(AND聚合或者OR聚合)用CompletableFuture解决。
  • 批量的并行任务用CompletionService解决。

并发编程可以分为三个层面的问题: 分工,协作,互斥。

ForkJoin有什么用

Fork/Join是一个并行计算的框架,主要就是用来支持分治任务模型的,这个计算框架里的Fork对应的是分治任务模型里的任务分解,Join对应的是结果合并。

什么是分治

把一个复杂的问题分解成多个相似的子问题,然后把子问题分解成更小的子问题,知道子问题简单到可以直接求解。

算法领域有分治算法(归并排序、快速排序都属于分治算法,二 分法查找也是一种分治算法);大数MapReduce也是。

分治模型

分治任务可以分成两个阶段:任务分解,结果合并。

Fork/Join的使用

Fork/Join计算框架主要包含两部分,一部分是分治任务的线程池ForkJoinPool,另一部分是分治任务ForkJoinTask。这两部分的关系类似ThreadPoolExecutor和 Runnable的关系,都可以理解为提交任务到线程池,只不过分治任务有自己独特类型ForkJoinTask。

ForkJoinTask
  • ForkJoinTask是一个抽象类最核心的是fork()方法和join()方法,fork()会异步地执行一个子任务,join()会阻塞当前线程来等待子任务的执行结果。
  • ForkJoinTask有连个子类:
    • RecursiveAction:用递归的方式来处理分治任务,compute()方法没有返回值。
    • RecursiveTask:用递归的方式来处理分治任务,compute()方法有返回值。

使用ForkJoinTask实现计算斐波那契数列

package com.thread;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;/*** 实现斐波那契数列* 求出第n个斐波那契数列值**/
public class ForkJoinDemo {public static void main(String[] args) {//创建分治任务线程池ForkJoinPool fjp = new ForkJoinPool(4);//创建分治任务Fibonacci fib = new Fibonacci(4);//启动分治任务Integer result = fjp.invoke(fib);//输出结果System.out.println(result);}static class Fibonacci extends RecursiveTask<Integer>{final int n;public Fibonacci(int n){this.n = n;}@Overrideprotected Integer compute() {if (n <= 1){return  n;}Fibonacci f1 = new Fibonacci(n-1);//创建⼦任务f1.fork();Fibonacci f2 = new Fibonacci(n-2);//等待子任务结果,并合并结果.return f2.compute()   f1.join();}}
}

ForkJoinPool与ForkJoinTask关系类似ThreadPoolExecutor和Runnable的关系。

ForkJoinPool有窃取队列的性质,空闲队列会窃取忙队列的任务

建议用不同的ForkJoinPool执行不同类型的计算任务

http://www.lbrq.cn/news/1093339.html

相关文章:

  • 做百度推广一定要有自已网站/全国广告投放平台
  • 北京专业网站改版/人力资源培训网
  • ui做自适应网站/友情链接交易平台
  • 手机建网站步骤软件/深圳seo技术
  • 在线教育网站建设/深圳seo推广公司
  • 免费网站自动优化软件/接外包项目的网站
  • 做海报的话网站/域名交易平台
  • joomla 网站建设/最新国内新闻重大事件
  • 成都微信网站建设多/设计公司排名前十强
  • 如何提高商城网站权重/在线crm
  • 买高端品牌网站建设/今日新闻最新头条10条摘抄
  • 网站开发 先做前端吗/中国企业网络营销现状
  • 做阀门的英文网站怎么写/手机打开国外网站app
  • php7安装wordpress/广州seo网站管理
  • 网站开发项目风险/今日头条荆州新闻
  • 济南专业制作网站/搜索引擎优化的办法有哪些
  • 在重庆 那里可以做诚信网站认证/优化是什么梗
  • 网站建设规范布局/武汉seo排名扣费
  • 包头怎样做网站/加盟教育培训机构
  • 做茶网站/黄山seo公司
  • 微网站 功能/郑州网站建设推广优化
  • 建设网站的源代码的所有权/自己网站怎么推广
  • 在马来西亚做博彩网站合法吗/seo搜索引擎优化介绍
  • 微网站可以自己做吗/优化推广seo
  • 做网站需要资料/大数据分析
  • 深圳快速网站制/学seo建网站
  • 网站的 规划与建设/天津网络广告公司
  • 海南省建设设厅官方网站/免费站长工具
  • 新手销售怎么和客户交流/惠州seo快速排名
  • 数据库对网站开发的作用/网站设计公司网站制作
  • Vue3 学习教程,从入门到精通,Vue3 样式绑定语法详解与案例(17)
  • 开源智能体框架(Agent Zero)
  • SpringBoot学习路径--SpringBoot的简单介绍和项目搭建
  • FunASR实时多人对话语音识别、分析、端点检测
  • 【lucene】AttributeSource概述
  • 65.第二阶段x64游戏实战-替换游戏lua打印可接任务