Java并发、Akka和RxJava之间的区别?

Java并发、Akka和RxJava之间的区别?,java,concurrency,akka,rx-java,Java,Concurrency,Akka,Rx Java,今天我发现,对于java中的并发性,我们有一个很好的框架,如Akka,我还发现,有一个反应式编程框架,如RxJava,用于在应用程序中执行多线程。但我还是很困惑!为什么两者都比Java并发框架好 如今,反应式编程是一个成熟的话题,大多数语言都支持功能性反应式编程,如Netflix为多种语言提供有关反应式编程的APIRxjava是用于java、scala等的api之一。根据Rxjava,它们在内部使用Actor来维护多线程,Akka也使用actors进行多线程编程 那么,Akka和Reactive

今天我发现,对于java中的并发性,我们有一个很好的框架,如
Akka
,我还发现,有一个反应式编程框架,如
RxJava
,用于在应用程序中执行
多线程
。但我还是很困惑!为什么两者都比Java并发框架好

如今,反应式编程是一个成熟的话题,大多数语言都支持功能性反应式编程,如Netflix为多种语言提供有关反应式编程的API
Rxjava
是用于
java
scala
等的api之一。根据
Rxjava
,它们在内部使用Actor来维护
多线程
Akka
也使用
actors
进行
多线程
编程


那么,
Akka
Reactive Programming
方法之间的区别是什么,以及为什么它们在
Java并发性方面很好呢?

根据Mathias Doenitz的说法,与Akkas Reactive Streams实现不同,RxJava没有背压。但RxJava似乎正在努力增加背压

这两个框架都将能够通过反应流spi进行交互。 所以你可以做非常类似的事情。根据Mathias的说法,不同之处在于Akka实现在内部基于参与者,而不是多线程。结果会更有效

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


编辑:我支持RxJava中的wrt背压支持。如果您遵循Eriks链接,您可以阅读背压的含义。

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

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

不清楚;最终,选择这个或那个解决方案取决于您的需求。好吧,但哪种方法好,反应式编程,akka还是java并发?因为它们都提供了
多线程
;只需按照你熟悉和/或想做的去做。就我个人而言,我只是使用JDK提供的东西,因为它足以满足我的需求,仅此而已。我不知道我是否是一个“优秀的开发人员”,但我不会推荐任何一个,因为我不使用它们,也不需要它们。就并发性而言,您想(购买并)阅读Brian Goetz的“Java并发性实践”。是的,我有这本书,这本书非常棒,我并不是说您不是一个好的开发人员。对不起,如果我爱你。但进化是发展的一部分。我仍然想知道,为什么我们更喜欢它们。“根据Mathias Doenitz当时的说法,RxJava没有背压”,这是事实上不正确的;rxJava2.x具有背压支持。