Guava proporciona muchas extensiones útiles para el futuro de programación paralelo de Java, su interfaz principal es escuchar a Future y se extiende estáticamente con la ayuda de futuros.
ListenableFuture heredado para el futuro nos permite agregar una función de devolución de llamada para devolver el valor cuando se completa la operación de subproceso o la ejecución del método se devuelve de inmediato.
Agregue una función de devolución de llamada a ListenableFuture:
Futures.addcallback (ListenableFuture <V>, FutureCallback <V>, Ejecutor)
Donde Futurecallback es una interfaz que contiene OnSuccess (V) y Onfailure (lanzable).
Utilizado de la siguiente manera:
Futures.addcallback (ListearFuture, New Futurecallback <SPET> () {public void onSuccess (resultado de objeto) {System.out.printf ("Onsuccess con: %s %n", resultado);} public void onfailure (showable showed) {system.printf ("onfailure %s %n", thrown. }});Al mismo tiempo, el futuro en la guayaba también tiene:
A continuación se muestra una demostración de prueba para el futuro:
@Testpublic void debería_test_furture () lanza la excepción {HearingExecutorService Service = MoreExeCutors.ListeningDecorator (Executors.newFixedThreadPool (10)); ListzarFuture Future1 = Service.SubMit (nuevo Callable <Integer> () {public Integer Call () lanza interruptedException {Thread.sleep (1000); System.out.println ("Llame Future 1."); return 1;}}); ListzarFuture Future2 = Service.SubMit (new Callable <Integer> () {public Integer Call () lanza interruptedException {Thread.sleep (1000); System.out.println ("Llame Future 2."); // Lanza la nueva runtimeException ("---- Llame Future 2."); regreso 2;}); FINAL ESCUCHAFUTURE ALLFUTURE = FUTURS.ALLASLIST (FUTUS1, FUTUS2); Final ListenableFuture Transform = Futures.Transform (AllFutures, New AsyncFunction <List <Integer>, boolean> () {@Override public KIRYABLEFUTURE APLICA (LIST <Integer> Results) lanza la excepción {return Futures.immediateFuture (String.format ("Success Future:%d", Results.)));}}); Futures.addcallback (transformar, nuevo Futurecallback <S Object> () {public void onSuccess (resultado del objeto) {System.out.println (result.getClass ()); System.out.printf ("éxito con:%s%n", resultado);} public void onfailure (showable) {System.Printf ("Onfailure%n", lanzado.getMessage ()); System.out.println (transform.get ());}Página de inicio de la información oficial: https://awk.so/@code.google.com!/p/guava-libraries/wiki/ListenableFutureExplaed
Lo anterior es la información que clasifica la guayaba: futuros de programación paralelo. Continuaremos agregando información relevante en el futuro. ¡Gracias por su apoyo para este sitio web!