Java 8在Lambda表达式、接口默认方式、新的日期API等方面引入的新特性广受关注,同时在并发编程方面也做出了大量改进。以往的几个Java版本都对java.util.concurrent做了不同程度的增强,比如Java 7的Fork/Join框架,而Java 8则进一步在java.util.concurrent下增加了新的接口、类与方法。
java.util.concurrent 中增加了两个接口四个类:

1.CompletableFuture.AsynchronousCompletionTask接口:标识在async方法中执行的异步任务。

2.CompletionStage<T>接口:异步计算中可能出现的一个阶段,也就是说当一个CompletionStage 完成时执行的动作或计算。

3.CompletableFuture<T>类:一个可以确定完成状态的Future。

4.ConcurrentHashMap.KeySetView<K,V>类:ConcurrentHashMap 的键的集合视图。

5.CountedCompleter<T>类:一个在没有其他action等待的情况下,会执行一个完成action的 ForkJoinTask 。

6.CompletionException类:异常类。

ConcurrentHashMap增加新方法

在Java 8中,集合框架基于streams和Lambda表达式做了全新调整:

ConcurrentHashMap增加了30多个方法,包括foreach系列(forEach,forEachKey, forEachValue, forEachEntry)、search系列(search, searchKeys, searchValues, searchEntries)、reduce系列(reduce, reduceToDouble, reduceToLong)以及mappingCount 、newKeySet等方法, 增强后的ConcurrentHashMap更适合做缓存了。

java.util.concurrent.atomic包的改进

java.util.concurrent.atomic包中增加了四个新的类:DoubleAccumulator、DoubleAdder、LongAccumulator、 LongAdder,这四个类的作者是并发大师Doug lea。
ForkJoinPool中增加新方法

Java 8除了对Fork-Join框架做了优化外,也为ForkJoinPool增加了两个静态方法:getCommonPoolParallelism() 、commonPool(),Oleg Shelajev在这篇博文中对Fork/Join做了详细的介绍并做了测试以比较其在JDK7、JDK8中的性能。

增加StampedLock类

StampedLock是一种新型锁的实现,很可能在大多数场景都可以替代ReentrantReadWriteLock。它为读写操作提供了三种模式:Writing、ReadingOptimistic、 Reading。

http://tech.it168.com/a2014/0421/1615/000001615329.shtml

http://www.importnew.com/21358.html

首先Java的并行API演变历程是从:
1、1.0-1.4版本中的java.lang.Thread。
2、1.5版本中的java.util.concurrent。
3、1.6版本中的Phasers等。
4、1.7版本中的Fork/Join框架。
5、1.8版本中的Lambda。

http://blog.163.com/liuyong_xiaxia/blog/static/174355255201581561821988/

JDK8 lambdas 异常扩展:https://github.com/jOOQ/jOOL

2017第33周四JDK8并发的更多相关文章

  1. 并发设计模式和锁优化以及jdk8并发新特性

    1 设计模式 (1) 单例模式 保证一个类只能一个对象实现.正常的单例模式分为懒汉式和饿汉式,饿汉式就是把单例声明称static a=new A(),系统第一次调用的时候生成(包括调用该类的其他静态资 ...

  2. Learning-Python【33】:并发编程之多进程

    一.multiprocessing 模块介绍 Python 中的多线程无法利用多核优势,如果想要充分地使用多核 CPU 的资源(os.cpu_count()查看),在 Python 中大部分情况需要使 ...

  3. [转]教你十分钟下载并破解IntelliJ IDEA(2017)

    来源:http://www.itwendao.com/article/detail/400687.html 温馨提示:IntelliJ IDEA(2017)需要安装JDK8以上才能运行 如果你是JDK ...

  4. 【多线程系列】AQS CAS简单介绍

    一.什么是CAS CAS(Compare And Swap),即比较并交换.是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V).预期原值(A)和新值(B). ...

  5. python基础之2

    1.模块 sys模块注意:python文件的文件名一定不能和下面的要导入的模块同名,如:sys_mokuai.py windows下的python3里直接运行: import sys    ----- ...

  6. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)

    一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...

  7. Linux实战教学笔记30:Nginx反向代理与负载均衡应用实践

    1.1 集群简介 简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器.这些服务器之间可 ...

  8. Net环境下比较流行的ORM框架对比

    个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使 ...

  9. 构建Docker+Jenkins持续集成环境

    docker和Jenkins不是什么新东西了,两者结合也不是什么稀奇的事情,也已经有很多Jenkins和docker相结合的文章,此文仅为自己的一点心得实践,如有不对的地方,欢迎大家纠正. 先贴上大致 ...

随机推荐

  1. map使用

    // map使用 1 #include <iostream> #include "insertVal.h" #include "sort.h" us ...

  2. C++关键字简述

    ID 范畴 关键字 说明 1 数据类型 bool 基本类型—-布尔类型 2 数据类型 char 基本类型—-字符类型 3 数据类型 wchar_t 基本类型—-宽字符类型 4 数据类型 double ...

  3. 第九课: - 导出到CSV / EXCEL / TXT

    第 9 课 将数据从microdost sql数据库导出到cvs,excel和txt文件. In [1]: # Import libraries import pandas as pd import ...

  4. 「Redis 笔记」常用命令

    编号 命令 描述 1 DEL key 此命令删除一个指定键(如果存在). 2 DUMP key 此命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查键是否存在. 4 EXPI ...

  5. UBuntu安裝使用PIP

    Windows下安裝python包還是比較方便的,直接在FLD網站下載對應的EXE文件就可以安裝,在linux系統下,使用pip,easy egg 管理工具可以減輕安裝負擔. 原文鏈接:http:// ...

  6. 关于《Python核心编程》第2版和第3版

    关于<Python核心编程>第2版和第3版 以前开始学Python的时候,根据某大神的建议买了本<Python核心编程>第2版,慢慢学习.而最近回家没带书回来,刚好JD有活动, ...

  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动

    http://www.cnblogs.com/wuhuacong/p/3841338.html 为了提高客户体验和进行一些技术探索,现在正准备把我自己的客户关系管理系统CRM在做一个Web的版本,因此 ...

  8. CorelDRAW X7中相机滤镜呈现出的复古照片效果

    CorelDRAW X7软件中相机效果滤镜较之以前版本又增添了许多功能,模拟各种“相机”镜头产生的效果,包括彩色.相片过滤器.棕褐色色调和时间器效果,可以让照片回到历史,展示过去流行的摄影风格.以下步 ...

  9. PhotoZoom如何使用调整大小配置文件

      众所周知PhotoZoom是一款图片无失真放大软件,所以在PhotoZoom中会有对尺寸大小调节功能.这里我们所要讲解的也是和尺寸调节等有关的功能——调整大小配置文件. 单击“调整大小配置文件.. ...

  10. PhotoZoom Classic 7有什么用?高品质的放大模糊图片!

    PhotoZoom Classic 7专门用于放大照片,同时保持质量.该软件配备了BenVista独特的S-Spline技术,可轻松超越Photoshop的双三次插值等替代解决方案. PhotoZoo ...