Guava fournit de nombreuses extensions utiles pour l'avenir de la programmation parallèle Java, son principale interface est l'écoute et il s'étend statiquement à l'aide de futurs.
Écouterablefuture hérité à l'avenir nous permet d'ajouter une fonction de rappel pour renvoyer la valeur lorsque l'opération de thread est terminée ou que l'exécution de la méthode est renvoyée immédiatement.
Ajoutez une fonction de rappel à l'écoute à écouter:
Futures.addcallback (écouterablefuture <v>, FutureCallback <v>, exécuteur)
Où FutureCallback est une interface contenant onSuccess (v) et onfailure (jetable).
Utilisé comme suit:
Futures.AddCallback (écouterablefuture, nouveau FutureCallback <Bject> () {public void onSuccess (résultat objet) {System.out.printf ("Onsuccess avec:% s% n", résultat);} public void onfailure (Thrown thrown) {System.out.printf ("onfailure% s% n", thrown.gessage ()); }});Dans le même temps, Futures in Guava a également:
Vous trouverez ci-dessous une démo de test pour l'avenir:
@TestPublic void shild_test_furture () lève une exception {écoutexECUTOrService Service = MoreExecutors.ListeingDecorator (Executor.NewFixeDThreadPool (10)); Écouterablefuture future1 = service.Submit (new Calable <Integer> () {public Integer Call () lève InterruptedException {Thread.Sleep (1000); System.out.println ("Call Future 1."); return 1;}}); Écouterablefuture future2 = Service.Submit (new Callable <Integer> () {public Integer Call () lève InterruptedException {Thread.Sleep (1000); System.out.println ("Call Future 2."); // Throw New RuntimeException ("---- Appel Future 2."); retour 2;}}); Final écoutablefuture allFuture = Futures.Allaslist (Future1, futur2); Final écoutablefuture transform = Futures.Transform (AllFutures, new AsyncFunction <st List <Integer>, Boolean> () {@Override public écoutablefuture applique (list.format ("Success Future:% d", résultat ()));}}); Futures.AddCallback (Transform, New FutureCallback <Bject> () {public void onSuccess (objet résultat) {System.out.println (result.getClass ()); System.out.printf ("Success avec:% s% n", résultat);} public void onfailure (landable) thrown.getMessage ());}}); System.out.println (transform.get ());}Page d'accueil d'informations officielles: https://awk.so/@code.google.com!/p/guava-libranary/wiki/ListenableFutureExplated
Ce qui précède est le tri des informations sur les futurs de programmation parallèle. Nous continuerons d'ajouter des informations pertinentes à l'avenir. Merci pour votre soutien pour ce site Web!