CompletableFuture supplyAsync

Ich habe gerade erst begonnen zu erkunden einige concurrency-features von Java 8. Eine Sache verwirrt mich ein bisschen ist diese zwei statischen Methoden:

CompletableFuture<Void> runAsync(Runnable runnable) 
CompletableFuture<U> supplyAsync(Supplier<U> supplier)

Tun, wer weiß, warum Sie wählen, um Schnittstelle zu verwenden, Lieferanten? Ist es nicht natürlicher zu bedienen Callable, das ist die Analogie von Runnable, die einen Wert zurückgibt? Ist, weil der Lieferant nicht eine Ausnahme, die nicht behandelt werden?

  • Denn Sie musste einfach anders sein als C#, die generisch benannten Action<> und Func<> - Schnittstellen, die denselben job erledigen, aber ohne verwirrend die Programmierer. Und so werden Sie vermehrt funktionale Schnittstellen, die für Methoden mit gleichen Signaturen, aber unterschiedliche Namen. Wahrscheinlich dachte Sie, es würde helfen, den Programmierer, indem Sie ihm ein mentales Modell, mit zu arbeiten, aber es funktioniert nicht: Es ist nur eine kleine PITA.
InformationsquelleAutor Tuan Do | 2016-03-28
Schreibe einen Kommentar