Giriş
thenAccept X() metodları bir future nesnesinin sonucunu sdece consume eder. Yani void döner.
- thenRun() aslında thenAccept() gibidir yani void döner. Farklı olarak Runnable alır
- thenApply() ise thenAccept() ve thenRun()'dan farklıdır yani bir sonuç döner.
Eğer thenAccept() çağrısı yapıldığında CompletableFuture zaten bitmişse, çağıran thread içinde çalışır. Bitmemişse ForkJoinPool içinde çalışır. Bir önceki safhanın sonucunu girdi olarak alır ancak thenApply'dan() farklı olarak void döner. Yani Consumer gibi çalışır.
Örnek
Şöyle yaparız
thenAcceptAsync metoduCompletableFuture<Integer> a = CompletableFuture.supplyAsync(() -> task.compute(1));CompletableFuture<Integer> b = CompletableFuture.supplyAsync(() -> task.compute(2));CompletableFuture<Integer> c = CompletableFuture.supplyAsync(() -> task.compute(3));CompletableFuture.allOf(a, b, c).thenAccept(v->System.out.println(List.of(a,b,c)));
Hiç yorum yok:
Yorum Gönder