首页 > 编程语言 >Java8新特性5_并行流

Java8新特性5_并行流

时间:2023-04-17 16:56:11浏览次数:44  
标签:fork join 并行 特性 任务 线程 Java8

并行流与顺序流

并行流

并行流就是把一个内容分成多个数据库,并用不同的线程分别处理每个数据块的流

Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,Stream API可以声明性的通过parallel() 与 sequential() 在并行流与顺序流之间进行切换

Fork/Join框架

概念

Fork/Join框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个小的任务运算的结果进行join汇总

image-20200406121617329

采用 工作窃取 模式

当执行新的任务时,它可以将其拆分成更小的任务执行,并将小任务加到线程队列中,然后再从一个随机线程的队列中偷取一个并加入它自己的队列中

想对于一般的线程池实现,fork/join框架的优势体现在对其中包含的任务的处理方式上,在一般的线程池中,如果一个线程正在执行的任务由于某些原因无法继续运行,那么该线程会处于等待状态,而在fork/join框架实现中,如果某个子问题由于等待另外一个子问题的完成而无法继续运行,那么处理该子问题的线程会竹筒寻找其他尚未运行的子问题来执行,这种方式减少了线程的等待时间,提高了性能

标签:fork,join,并行,特性,任务,线程,Java8
From: https://www.cnblogs.com/salixleaf/p/17133963.html

相关文章

  • Java8新特性6_Optional容器类
    Optional类概念Optional类是一个容器类,代表一个值存在或者不存在,原来null表示一个值不存在,现在Optional可以更好的表达这个概念,并且可以规避空指针异常常用方法Optional.of:创建一个Optional实例Optional.empty:创建一个空的Optional实例Optional.ofNullable:若t不为null......
  • Java8新特性1_HashMap变化
    Java8新特性主要特性Lambda表达式函数式接口方法引用与构造器引用StreamAPI接口中默认方法与静态方法新时间日期API最大化减少空指针异常(Optional)。。。。HashMap1.7在JDK1.7到JDK1.8的时候,对HashMap做了优化首先JDK1.7的HashMap当出现Hash碰撞的时候,最后插入的......
  • Java8新特性2_Lambda表达式
    Lambda表达式为什么要用Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁、更灵活的代码,作为一个更紧凑的代码风格,使Java语言表达能力得到了提升实例代码Lambda表达式最先替代的就是匿名内部类,假设......
  • Java8新特性3_方法引用和构造器
    方法引用与构造器引用方法引用概念若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用”,可以理解为方法引用是Lambda表达式的另外一种表现形式格式对象::实例方法名类::静态方法名类::实例方法名注意Lambda体中,调用方法的参数列表与返回值类型,要与函数式接口......
  • 根据负荷响应特性将需求响应分为价格型和替代型 2 类,分别建立了基于价格弹性矩阵的价
    MATLAB代码碳交易机制   需求响应  综合能源系统 优化运行首先,根据负荷响应特性将需求响应分为价格型和替代型2类,分别建立了基于价格弹性矩阵的价格型需求响应模型,及考虑用能侧电能和热能相互转换的替代型需求响应模型;其次,采用基准线法为系统无偿分配碳排放配额,并......
  • 特性介绍 | MySQL 测试框架 MTR 系列教程(一):入门篇
    作者:卢文双资深数据库内核研发去年年底通过微信公众号【数据库内核】设定了一个目标——2023年要写一系列特性介绍+内核解析的文章(现阶段还是以MySQL为主)。虽然关注者很少,但本着“说到就要做到”的原则,从这篇就开始了。序言:以前对MySQL测试框架MTR的使用,主要集中......
  • C++11新特性
    移动语义概念理解可以取地址的是左值,不能取地址的就是右值。右值短暂的存在于栈上。右值包括:临时对象、匿名对象、字面值常量const左值引用可以绑定到左值与右值上面。正因如此,也就无法区分传进来的参数是左值还是右值。右值引用只能绑定到右值,不能绑定到左值。所以可以区分......
  • [3]Python高级特性-【5】高阶函数
    高阶函数是Python中一种强大的编程概念,它允许函数作为参数传递给其他函数,或者作为返回值从函数中返回。在这篇学习教程中,我们将深入了解高阶函数的概念、用法和常见的应用场景。什么是高阶函数?在Python中,函数可以被当作变量一样进行操作,包括作为参数传递给其他函数,或者作为返回值从......
  • Q:数据库方法的传播特性,外层方法的事务注解@Transactional默认会影响本方法么
    外层方法的事务注解默认会影响本方法么涉及知识:事务的传播特性实验前推测:目前了解内、外方法某个发生异常执行回滚是否影响另一个方法是由配置的哪个传播特性决定的。推测内方法出现异常要导致外方法的事务也要回滚,因为这个在现实场景最普遍。实验:描述:roleService.inse......
  • java8使用stream流将list转map
    java8使用stream流将list转map原文链接:https://blog.csdn.net/weixin_43769566/article/details/123815887stream将list转化为map在Stream流中将List转换为Map,是使用Collectors.toMap方法来进行转换。1.key和value都是对象中的某个属性值。Map<String,String>userMap1......