net - ¿Diferencia entre Java Concurrency, Akka y RxJava?
rxjava gradle (2)
Hoy encontré que, para la concurrencia en Java, tenemos un buen marco como Akka
y también encontré que hay un marco de programación reactivo como RxJava
para realizar multithreading
RxJava
en la aplicación. ¡Pero todavía estoy confundido! ¿Por qué los dos son mejores que Java Concurrency
?
Hoy en día, la programación reactiva es un tema maduro, y la mayoría de los lenguajes tienen soporte para la Functional Reactive Programing
como Netflix
proporciona API con respecto a la Reactive programming
para más de un idioma. Rxjava
es una de las api que se utiliza para java
, RxJava
, etc.
Entonces, ¿cuál es la diferencia entre Akka
y el enfoque de Reactive Programming
y por qué son buenos desde Java Concurrency
?
Según Mathias Doenitz, en este momento RxJava no tiene presión de retorno
Eso es objetivamente incorrecto; https://github.com/ReactiveX/RxJava/wiki/Backpressure
Según Mathias Doenitz, en este momento, RxJava no tiene presión de retorno, a diferencia de la implementación de Akkas Reactive Streams. Pero RxJava parece estar trabajando en agregar presión de nuevo.
Ambos marcos podrán interactuar a través de la transmisión reactiva spi. Así podrás hacer cosas muy similares. Según Mathias, la diferencia será que la implementación de Akka se basa internamente en actores, no en subprocesos múltiples. Y como resultado será más performante.
Mi fuente para esta información es una charla que Mathias dio la semana pasada en el grupo de usuarios de Scala holandés.
Edición: Estoy de acuerdo con el soporte de contrapresión de wrt en RxJava. Si sigues el enlace de Eriks, puedes leer lo que significa contrapresión.