Guava bietet viele nützliche Erweiterungen für Java Parallel Programming Future, seine Hauptschnittstelle ist hörbar und erstreckt sich statisch mit Hilfe von Futures.
Mit der ankünftigen ListenableFuture können wir eine Rückruffunktion hinzufügen, um den Wert zurückzugeben, wenn der Thread -Vorgang abgeschlossen ist oder die Methodenausführung sofort zurückgegeben wird.
Fügen Sie einer Rückruffunktion zu ListenableFuture hinzu:
Futures.addcallback (ListenableFuture <V>, FutureCallback <V>, Executor)
Wobei FutureCallback eine Schnittstelle ist, die Onsuccess (V) und OnFailure (Throwable) enthält.
Verwendet wie folgt:
Futures.addcallback (ListenableFuture, neuer FutureCallback <Object> () {public void OnSuccess (Objektgebnisse) {System.out.printf ("Onsuccess mit: %s %n", result);} public void onfailure (geworfener geworfen) {out.printf ("ONFAILURURE IGUIRIGUIL SINGS (" ONFAILURURE ISTEN). }});Gleichzeitig hat Futures in Guava auch:
Unten finden Sie eine Testdemo für die Zukunft:
@Testpublic void sollte_test_furture () löst eine Ausnahme aus {hörExecutorService service = moreExecutors.ListingDeCorator (Executors.NewFixedThreadpool (10)); ListenableFuture Future1 = service.submit (neuer Callable <Integer> () {public Integer call () löst InterruptedException aus {Thread.sleep (1000); System.out.println ("Call Future 1."); Rückgabe 1;}}); ListenableFuture Future2 = service.submit (neuer Callable <Integer> () {public Integer call () löst InterruptedException aus {thread.sleep (1000); System.out.println ("Call Future 2."). endgültige hörbare Future Allfuture = Futures.AllasList (Future1, Future2); endgültige hörbare Future -Transformation = Futures.Transform (Allfuturen, neue asyncfunction <list <Integer>, boolean> () {@Override public hörungsfuture anwenden (list <Integer> Ergebnisse) löst Ausnahme aus {return futures.immediateFuture (String.format ("Erfolg zukünftig:%d", Ergebnis. Futures.addcallback (Transformation, neuer FutureCallback <Object> () {public void OnSuccess (Objekt Ergebnis) {System.out.println (result.getClass (); system.out.outf ("Erfolg mit:%s%n", Ergebnis); geworfen.getMessage ()); System.out.println (transform.get ());}Offizielle Information Homepage: https://awk.so/@code.google.com!
Das obige ist die Informationen, die Guava -Parallel -Programmierfutures aussortieren. Wir werden in Zukunft weiterhin relevante Informationen hinzufügen. Vielen Dank für Ihre Unterstützung für diese Website!