2014-12-17 10 views
24

Heute habe ich festgestellt, dass für Nebenläufigkeit in Java haben wir gute Rahmen wie Akka und ich fand auch, dass es eine reaktive Programmierung Frameworks wie RxJava für die Durchführung multithreading in Anwendung. Aber ich bin immer noch verwirrt! Warum sind beide besser als Java Concurrency Framework?Unterschied zwischen Java Concurrency, Akka und RxJava?

Heutzutage reaktive Programmierung ist ausgereiftes Thema, und die meisten Sprachen haben Unterstützung für Functional Reactive Programing wie Netflix bieten APIs in Bezug auf Reactive programming für mehr als eine Sprache. Rxjava ist eine der API, die für java, scala usw. Gemäß RxJava verwendet wird, diese intern benutzen Akteure für multithreadingAkka und verwendet auch Actors für multithreading Programmierung beibehalten wird.

Also, was ist der Unterschied zwischen Akka und Reactive Programming Ansatz und warum sind sie gut von Java Concurrency?

+2

Unklar; und letztendlich hängt die Entscheidung für diese oder jene Lösung von Ihren Bedürfnissen ab. – fge

+0

ok, Aber welcher Ansatz ist gut, reaktive Programmierung, Akka oder Java Concurrency? weil sie alle "Multithreading" bieten. –

+0

Es gibt keinen allgemeinen "guten Ansatz"; gehen Sie einfach mit dem, was Sie kennen und/oder tun möchten. Persönlich verwende ich nur, was das JDK bietet, da es für meine Bedürfnisse gut genug ist, und das ist es auch schon. – fge

Antwort

15

Laut Mathias Dönitz hat RxJava zu diesem Zeitpunkt keinen Gegendruck, anders als bei der Implementierung von Akkus Reactive Streams. Aber RxJava scheint daran zu arbeiten, den Gegendruck zu erhöhen.

Beide Frameworks können über den reaktiven Streaming-Spi interagieren. So werden Sie sehr, sehr ähnliche Dinge tun können. Laut Mathias wird der Unterschied darin bestehen, dass die Implementierung von Akka intern auf Akteuren basiert, nicht auf Multi-Threading. Und als Ergebnis wird mehr performant sein.

Meine Quelle für diese Information ist a talk, die Mathias letzte Woche bei der niederländischen Scala-Benutzergruppe gab.

edit: Ich stehe korrigierte wrt Gegendruckunterstützung in RxJava. Wenn Sie Eriks Link folgen, können Sie lesen, was Rückstau bedeutet.

+0

Danke für Ihre gute Präsentation. es ist wirklich erstaunlich. –

16

Laut Mathias Dönitz zu diesem Zeitpunkt RxJava nicht über Rückstau

dass sachlich falsch ist; https://github.com/ReactiveX/RxJava/wiki/Backpressure

+0

danke, für weitere Informationen. Aber was ist bei der reaktiven Programmierung der Begriff "Gegendruck" in den Worten des Laien? –

+18

Gegendruck ist "whoa, Alter, verlangsamen Sie mit all dem, ich kann es nicht so schnell nehmen." – Victor

+0

Es tut jetzt: https://github.com/ReactiveX/RxJava/wiki/Backpressure –

Verwandte Themen