27 Nisan 2021 Salı

CompletableFuture.thenAccept metodu - Bir Future Nesnesinin Sonucunu Sadece Tüketir Yani void Döner

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. 

thenAccept metodu
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
CompletableFuture<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)));
thenAcceptAsync metodu
Executor veya 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.

Hiç yorum yok:

Yorum Gönder