2014-12-17 27 views
24

Oggi ho scoperto che, per la concorrenza in java abbiamo una buona struttura come Akka e ho anche scoperto che, c'è un framework di programmazione reattivo come RxJava per l'esecuzione di multithreading nell'applicazione. Ma sono ancora confuso! Perché entrambi sono meglio del framework Java Concurrency?Differenza tra Java Concurrency, Akka e RxJava?

Al giorno d'oggi la programmazione reattiva è un argomento maturo e la maggior parte delle lingue supporta Functional Reactive Programing come Netflix fornisce API per Reactive programming per più di una lingua. Rxjava è una delle api che viene utilizzato per java, scala ecc Secondo RxJava, usano internamente attori per mantenere multithreading e Akka utilizza anche Actors per multithreading programmazione.

Quindi, qual è la differenza tra l'approccio Akka e Reactive Programming e perché sono validi da Java Concurrency?

+2

Non chiaro; e in definitiva, scegliere questa o quella soluzione dipende dalle tue esigenze. – fge

+0

ok, ma quale approccio è buono, programmazione reattiva, akka o java? perché forniscono tutti il ​​'multithreading'. –

+0

Non esiste un generale "buon approccio"; vai con ciò che hai familiarità e/o vuoi fare. Personalmente, uso solo ciò che fornisce il JDK poiché è abbastanza buono per le mie esigenze, e questo è quanto. – fge

risposta

15

Secondo Mathias Doenitz in questo momento RxJava non ha contropressioni a differenza dell'implementazione di Akkas Reactive Streams. Ma sembra che RxJava stia lavorando per aggiungere una contropressione.

Entrambe le strutture saranno in grado di interagire attraverso lo spi streaming reattivo. Quindi sarai in grado di fare cose molto simili. Secondo Mathias, la differenza sarà che l'implementazione di Akka è basata internamente sugli attori, non sul multi-threading. E di conseguenza sarà più performante.

La mia fonte per questa informazione è a talk che Mathias ha dato la scorsa settimana al gruppo di utenti di Scala olandese.

modifica: Sono in grado di correggere il supporto della pressione posteriore in RxJava. Se segui il link Eriks puoi leggere cosa significa "back pressure".

+0

Grazie per la tua buona presentazione. è davvero incredibile. –

16

Secondo Mathias Doenitz, a questo punto nel tempo RxJava non ha contropressione

che contengono errori di fatto; https://github.com/ReactiveX/RxJava/wiki/Backpressure

+0

grazie, per ulteriori informazioni. Ma nella programmazione reattiva, qual è la "contropressione" nelle parole profane? –

+18

La contropressione è "whoa, amico, rallenta con tutto questo, non posso prenderlo così velocemente." – Victor

+0

Adesso: https://github.com/ReactiveX/RxJava/wiki/Backpressure –

Problemi correlati