黑马程序员技术交流社区

标题: Java 8 和 Java 9 中并发工具的改变 [打印本页]

作者: 骑着小猪看雪    时间: 2018-5-3 10:53
标题: Java 8 和 Java 9 中并发工具的改变


Java 8 和 Java 9 中并发工具的改变


Java 8 和 Java 9中 concurrent 包有了一些改变, 本文对这些改变做了汇总。
Java 8 中 Concurrent package的改变
java.util.concurrent中新的类和接口
增加了两个新接口和4个新类:
java.util.concurrent.ConcurrentHashMap的新方法
集合框架 在Java 8中做了修订,基于 stream 和 lambda表达式 添加了很多聚合方法。因此 ConcurrentHashMap 也引入了30几个新方法,包括各种 foreach 方法(forEach , forEachKey , forEachValue , 和 forEachEntry )、搜索方法( search , searchKeys , searchValues , 和 searchEntries )和reduction方法( reduce ,reduceToDouble , reduceToLong 等)。
也添加了一些其它方法,比如 mappingCount 和 newKeySet 。并且当前版本的 ConcurrentHashMap 的更适合做cache,因为增加了当键值不存在的时候的检查方法。
java.util.concurrent.atomic中的新类
为了并发计算count、sum, 新引入了 DoubleAccumulator , DoubleAdder , LongAccumulator , LongAdder 类,比Atomic提供更高的吞吐率。
java.util.concurrent.ForkJoinPool的新方法
静态的 commonPool() 新加入,可以为ForkJoinTask提供通用池。
两个方法 getCommonPoolParallelism() 和 commonPool() 提供不同的配置。
新类 java.util.concurrent.locks.StampedLock
新类 StampedLock 提供三种模式(写,读,乐观读),用来提高性能。
Java 9 中 Concurrent package的改变
主要是 JEP 266: More Concurrency Updates , 包括publish-subscribe, CompletableFuture 接口的加强等。
参考文档
Java 8 和 Java 9中 concurrent 包有了一些改变, 本文对这些改变做了汇总。


作者: 骑着小猪看雪    时间: 2018-5-3 10:54

作者: O-limin    时间: 2018-5-3 15:47

作者: 项老师    时间: 2018-5-3 15:48

作者: hguilin    时间: 2018-5-3 15:50

合肥校区蒸蒸日上
作者: 奥斯托洛夫斯基    时间: 2018-5-3 15:50

作者: 美美就是美    时间: 2018-5-3 15:58

作者: 皖哥哥    时间: 2018-5-3 17:57
学习了
作者: 黑马啸西风    时间: 2018-5-3 17:58

作者: 朱浩    时间: 2018-5-3 18:01
6666
作者: 小皖妹妹    时间: 2018-5-3 18:04

作者: 鸟语花香    时间: 2018-5-4 11:04





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2