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

时间:2014-12-17 12:38:56

标签: java concurrency akka rx-java

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

如今,反应式编程是一个成熟的主题,大多数语言都支持Functional Reactive Programing,例如NetflixReactive programming提供多种语言的API。 Rxjava是用于javascala等的API之一。根据RxJava,他们在内部使用参与者来维护multithreading和{{1}还使用Akka进行Actors编程。

那么,multithreadingAkka方法之间有什么区别?为什么它们来自Reactive Programming

2 个答案:

答案 0 :(得分:19)

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

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

此信息的来源是Mathias上周在荷兰Scala用户组提供的a talk

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

答案 1 :(得分:0)

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

  • 从actor读取并传递到流和
  • 从流中读取并将其传递给演员