2014-12-17 34 views
24

Dziś znalazłem, że dla współbieżności w java mamy dobre ramy takie jak Akka i odkryłem również, że istnieją reaktywne ramy programistyczne, takie jak RxJava do wykonywania multithreading w aplikacji. Ale wciąż jestem zdezorientowany! Dlaczego oba są lepsze niż framework Java Concurrency?Różnica między Java Współbieżność, Akka i RxJava?

Obecnie programowanie reaktywne to dojrzały temat, a większość języków ma wsparcie dla Functional Reactive Programing, takie jak Netflix, udostępnia interfejsy API dotyczące Reactive programming dla więcej niż jednego języka. Rxjava jest jednym z API, które jest wykorzystywane do java, scala itd. Według RxJava one wewnętrznie użyć aktorów do utrzymania multithreading i Akka również używa Actors programowania multithreading.

Jaka jest różnica między podejściem Akka a Reactive Programming i dlaczego są one dobre od Java Concurrency?

+2

Niejasne; i ostatecznie, wybór tego lub innego rozwiązania zależy od twoich potrzeb. – fge

+0

ok, ale jakie podejście jest dobre, programowanie reaktywne, akura lub Java współbieżność? ponieważ wszystkie zapewniają "wielowątkowość". –

+0

Nie ma ogólnego "dobrego podejścia"; po prostu idź z tym, co znasz i/lub chcesz zrobić. Osobiście używam tylko tego, co zapewnia JDK, ponieważ jest wystarczająco dobre dla moich potrzeb, i to wszystko. – fge

Odpowiedz

15

Według Mathiasa Doenitza w tym momencie RxJava nie ma przeciwciśnienia w przeciwieństwie do implementacji Akkas Reactive Streams. Ale RxJava wydaje się pracować nad zwiększaniem ciśnienia wstecznego.

Obie struktury będą mogły wchodzić w interakcje za pośrednictwem reaktywnego spi strumieniowego przesyłania strumieniowego. Dzięki temu będziesz mógł robić bardzo podobne rzeczy. Według Mathiasa różnica polega na tym, że implementacja Akki opiera się wewnętrznie na aktorze, a nie na wielowątkowości. W rezultacie będą bardziej wydajne.

Moje źródło tej informacji to a talk, którą Mathias dał w zeszłym tygodniu w grupie użytkowników Dutch Scala.

edytuj: Stoję poprawione wsparcie dla ciśnienia wstecznego w Rxjiava. Jeśli podążysz za linkiem Eriks, możesz przeczytać, co oznacza przeciwciśnienie.

+0

Dzięki za dobrą prezentację. to naprawdę niesamowite. –

16

Według Mathias Doenitza w tym momencie nie ma RxJava ciśnienie zwrotne

To jest niezgodny ze stanem faktycznym; https://github.com/ReactiveX/RxJava/wiki/Backpressure

+0

dzięki, aby uzyskać więcej informacji. Ale w programowaniu reaktywnym, co jest "przeciwwagą" w słowach laika? –

+18

Podciśnienie to "whoa, koleś, zwolnij z tym wszystkim, nie mogę tego tak szybko." – Victor

+0

To robi teraz: https://github.com/ReactiveX/RxJava/wiki/Backpressure –

Powiązane problemy