长沙java培训
达内长沙芙蓉路中心

18487146383

热门课程

Java 9中将会有什么有趣的改进?

  • 时间:2017-01-09
  • 发布:长沙Java培训
  • 来源:csdn

2017年7月即将发布的Java 9将会新增和修订不少功能和特性。在搜索JDK增强提议(JEP)时发现,JEP 266对CompletableFuture进行了一些有趣的改进,更新并发功能和支持Reactive Streams。

本文达内长沙Java培训就要说一说JEP 266的改进和一些有趣的特性,它极有可能成为Java 9中最常用的特性之一。

JEP 266是Oracle草拟JDK增强协议里面的一员,其中对并发进行了大量的更新。根据提案,将要进行更新的特性有:

支持Reactive Streams发布-订阅框架接口

对CompletableFuture API进行更新,例如支持延迟、超时、子类化和其它方法

其它一般改进,例如小调整和javadoc规范重写

本文重点关注前两个改进。首先,Java 9将支持Reactive Streams,这是一个来自Java社区的改进计划,旨在改进开发人员的并发工作流程。其次是CompletableFuture API提供的几个fixer-uppers,可以让开发人员回到Future<T>。

Flow类

Reactive Streams发布-订阅框架里面将嵌套一个Flow类,以及开发人员可以用来创建自定义组件使用的SubmissionPublisher。

先从最上面的说起,Reactive Streams主要解决背压(back-pressure)问题。当传入的任务速率大于系统处理能力时,数据处理将会对未处理数据产生一个缓冲区。

与此同时,我们还与Akka团队的高级开发人员Konrad Malawski进行了沟通,他是Reactive Streams计划的领导者,解释了Reactive Streams的重要性以及如何使用。

Oracle指出,新的增强将包括“一个很小的接口,其定义符合(来自Reactive Stream initiative的)广泛参与”,这就是Flow类的来源。

Reactive Streams由4个Java接口构成:

处理器(Processor)

发布商(Publisher)

订阅用户(Subscriber)

订阅(Subscription)

Flow类允许相互关联的接口和静态方法来建立流控制组件,其中发布者产生由一个或多个订阅者消费的项目,每个订阅者由订阅管理。

Reactive Streams构建在java.util.concurrent.Flow容器对象下,开发者可以在这里找到Flow.Publisher,一个用作lambda表达式或方法引用的赋值目标功能接口。该接口可以让开发者更容易生成Flow.Subscription元素,并且将它们链接在一起。

另一个元素Flow.Subscriber,是异步工作机制,由请求触发。它可以从Flow.Subscription请求多个元素,开发者还可以根据需要自定义缓冲区大小。

这些接口适用于并发和分布式异步设置,它们之间的通信依赖于一种简单的流控制形式,可用于避免资源管理问题。

长沙Java培训选长沙达内,详情请登陆长沙达内Java培训官网(cs.Java.tedu.cn)!

上一篇:函数式编程语言是什么?
下一篇:达内长沙Java培训解析重载与重写的区别

达内长沙Java培训教你阅读GC日志

spring注入配置文件属性到java类

Java中Vector和ArrayList的区别

达内长沙Java培训详解volatile关键字

选择城市和中心
贵州省

广西省

海南省

台湾