Diferencia entre CompletableFuture, Future y RxJava's Observable
Me gustaría saber la diferencia entreCompletableFuture
,Future
yObservable
RxJava
.
Lo que sé es que todos son asincrónicos pero
Future.get()
bloquea el hilo
CompletableFuture
da los métodos de devolución de llamada
RxJava Observable
--- Similar aCompletableFuture
con otros beneficios (no estoy seguro)
Por ejemplo: si el cliente necesita hacer múltiples llamadas de servicio y cuando usamosFutures
(Java)Future.get()
se ejecutará secuencialmente ... me gustaría saber cómo es mejor en RxJava ...
Y la documentaciónhttp://reactivex.io/intro.html dice
Es difícil usar Futures para componer de manera óptima flujos de ejecución asincrónicos condicionales (o imposible, ya que las latencias de cada solicitud varían en tiempo de ejecución). Esto se puede hacer, por supuesto, pero rápidamente se vuelve complicado (y por lo tanto propenso a errores) o se bloquea prematuramente en Future.get (), lo que elimina el beneficio de la ejecución asincrónica.
Realmente interesado en saber cómoRxJava
resuelve este problema Me resultó difícil de entender por la documentación.