Java 8 CompletableFuture vs Netty Zukunft

8

Wie wird die in JDK 8 eingeführte CompletableFuture mit der von netty bereitgestellten io.netty.util.concurrent.Future verglichen?

Netty-Dokumentation erwähnt das

  

JDK 8 fügt CompleableFuture hinzu, die etwas überlappt   %Code%    Ссылка

Die Fragen, auf die ich Antworten zu bekommen versuche, sind:

  1. Was wären ihre Ähnlichkeiten und Unterschiede?
  2. Wie unterscheiden sich die Leistungsmerkmale der beiden? Welche könnte besser skaliert werden?

In Bezug auf die Ähnlichkeiten / Unterschiede konnte ich Folgendes aufstellen:

Ähnlichkeiten: Die grundlegende Ähnlichkeit ist, dass beide im Vergleich zur Java-Zukunft nicht blockierend sind. Beide Klassen verfügen über Methoden, um einen Listener in die Zukunft zu integrieren, Fehler und Erfolg der Aufgabe zu inspizieren und Ergebnisse von der Aufgabe zu erhalten.

Unterschiede: io.netty.util.concurrent.Future scheint eine viel reichhaltigere Schnittstelle zu haben für Dinge wie das Zusammenstellen mehrerer asynchroner Aktivitäten usw. Nettys CompletableFuture erlaubt andererseits das Hinzufügen mehrerer Listener zum gleichen Future und erlaubt außerdem das Entfernen von Zuhörern.

    
Prateek 07.12.2015, 04:53
quelle

1 Antwort

1

Wenn wir uns diesen ganzen Absatz anschauen (besonders den ersten Satz)

  

Java macht manchmal Fortschritte, indem es Ideen übernimmt, die Konstrukte subsumieren   zur Verfügung gestellt von Netty. Zum Beispiel fügt JDK 8 CompleableFuture hinzu   etwas überlappt io.netty.util.concurrent.Future. In einem solchen Fall,   Nettys Konstrukte bieten einen guten Migrationspfad für Sie; Wir werden   aktualisieren Sie die API sorgfältig mit Blick auf die zukünftige Migration.

Was es im Grunde sagt ist, dass die Netty Future und CompletableFuture dasselbe Konzept sind, aber zu verschiedenen Zeiten von verschiedenen Leuten implementiert werden.
Netty hat ihre Zukunft gemacht, weil es in Java kein einziges gab, und sie wollten es nicht als eine Abhängigkeit von etwas wie Guice sehen. Aber jetzt, Java hat einen erstellt, und es ist verfügbar für den Einsatz.
Am Ende des Absatzes sagen sie im Grunde, dass die netty API in Zukunft Future durch CompletableFuture ersetzen kann.
Soweit Ähnlichkeiten / Unterschiede, sind sie beide nur eine von vielen Implementierungen des future / promise Musters. Verwenden Sie das Netty, wenn Sie netty api und netty verwenden, ansonsten verwenden Sie CompletableFuture .

    
kag0 11.04.2017 19:22
quelle