今天我发现,对于Java中的并发性,我们有像Akka
这样的良好框架,我还发现,有一个反应式编程框架,如RxJava
,用于在应用程序中执行multithreading
。但我还是很困惑!为什么两者都优于Java Concurrency
框架?
如今,反应式编程是一个成熟的主题,大多数语言都支持Functional Reactive Programing
,例如Netflix
为Reactive programming
提供多种语言的API。 Rxjava
是用于java
,scala
等的API之一。根据RxJava
,他们在内部使用参与者来维护multithreading
和{{1}还使用Akka
进行Actors
编程。
那么,multithreading
和Akka
方法之间有什么区别?为什么它们来自Reactive Programming
?
答案 0 :(得分:19)
根据Mathias Doenitz的说法,此时RxJava不像Akkas Reactive Streams实施那样具有背压。但是RxJava似乎正在努力增加背压。
两个框架都能够通过响应式流式spi进行交互。 所以你将能够做非常相似的事情。根据Mathias的不同,Akka实现的内部基于actor,而不是多线程。结果会更有效率。
此信息的来源是Mathias上周在荷兰Scala用户组提供的a talk。
编辑:我在RxJava中支持更正的压力支持。如果您关注Eriks链接,您可以阅读背压意味着什么。
答案 1 :(得分:0)
基于演员的Akka流在演员和流之间提供互操作,例如: