首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Java 9流接口/在Java 9中包含它们有什么意义?

如何使用Java 9流接口/在Java 9中包含它们有什么意义?
EN

Stack Overflow用户
提问于 2017-09-23 17:25:09
回答 2查看 1.2K关注 0票数 9

首先,我不得不说,我对反应性编程没有多少经验。

由于JDK 9 (流及其嵌套接口)中只有少数几个接口,因此JDK 9显然不包括像RxJava这样的反应性库。

在Javadoc中,有一些实现PublisherSubscriptionSubscriber的示例。但这些似乎是相当低的水平,没有任何反应操作者或处理背压。

那么,将这些接口包含到JDK中有什么意义呢?

反应性库的供应商是否应该使用它们,以便它们的Java实现(如RxJava)使用一组公共接口?(类似于JPA和Hibernate?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-23 18:13:10

它主要允许Java本身在未来的一些版本(如反应性JDBC、网络、IO等)内部使用反应性编程。在概念上,它也是一个新的互操作集合点,然而,这种集合点已经存在,通过它的Java 6需求针对更多的用户使用这种集合点。

正如您所提到的,拥有这4个接口和SubmissionPublisher本身的使用是有限的。如果Java有类似于Kotlin和C#的扩展方法,那么接口的包含可能会产生更多有趣的影响。

不幸的是,这也意味着现有的库必须使用桥接器在Java 9流和反应性流之间进行转换,并且/或用Java 9流API重新实现整个库--淘汰任何没有Java 9的人(即Android)。

主要的库已经有这样的桥接器(RxJava 2 Jdk 9互操作堆芯互操作),而反应流将有它的自己的桥最终。还有一个为Java 9特性编写的原型反应库

票数 12
EN

Stack Overflow用户

发布于 2017-09-23 17:34:45

流量接口的目的是提供“无阻塞背压异步流处理的标准”。已经有很多解决方案可以实现这一点(比如Rx),但是通过引入公共接口,可以最大限度地提高互操作性。

背压是关键,背压是,如果生产者给予回调,消费者可以以比生产者所能处理的更快的速度调用该回调。

通过在同一个线程上运行它们,可以很容易地阻止压力的产生,这样消费者和生产者就可以互相阻塞。

这种流动界面将使我们实现无阻塞的背压。

其中的细节将在此链接中详细解释(以及如何使用接口的信息):https://aboullaite.me/java-9-new-features-reactive-streams/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46382341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档