Java Concurrency,Akka和RxJava之间的区别?

问题描述 投票:28回答:2

今天我发现,对于Java中的并发性,我们有像Akka这样的良好框架,我还发现,有一个反应式编程框架,如RxJava,用于在应用程序中执行multithreading。但我还是很困惑!为什么两者都优于Java Concurrency框架?

如今反应式编程是成熟的主题,大多数语言都支持Functional Reactive Programing,如Netflix提供有关Reactive programming的多种语言的API。 Rxjava是用于javascala等的api之一。根据RxJava,他们内部使用演员维持multithreadingAkka也使用Actors进行multithreading编程。

那么,AkkaReactive Programming方法之间有什么区别?为什么它们来自Java Concurrency

java concurrency akka rx-java
2个回答
19
投票

根据Mathias Doenitz的说法,此时RxJava没有像Akkas Reactive Streams实施那样的背压。但是RxJava似乎正在努力增加背压。

两个框架都能够通过反应式流spi进行交互。所以你将能够做非常相似的事情。根据Mathias的不同,Akka实现的内部基于actor,而不是多线程。结果将更加高效。

这个信息的来源是Mathias上周在Dutch Scala用户组提供的a talk

编辑:我站在RxJava的背压支持下纠正了。如果您关注Eriks链接,您可以阅读背压意味着什么。


0
投票

基于演员的Akka Streams提供了演员和流之间的互操作,例如:

  • 从演员那里读取并将其传递给溪流和
  • 从溪流中读取并将其传递给演员