Concurrency Orta

CompletableFuture kullanarak bloklamadan asenkron işlemleri zincirleme.

✕ Pre-Java 8
Future<String> future =
    executor.submit(this::fetchData);
String data = future.get(); // blocks
String result = transform(data);
✓ Java 8+
CompletableFuture.supplyAsync(
    this::fetchData
)
.thenApply(this::transform)
.thenAccept(IO::println);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🔗

Zincirlenebilir

Asenkron adımları okunabilir bir hatta birleştirin.

🚫

Bloklama yok

Hiçbir iş parçacığı sonuçları beklemek için boşta durmaz.

🛡️

Hata işleme

exceptionally() ve handle() ile temiz hata kurtarma.

Eski Yaklaşım
Bloklayan Future.get()
Modern Yaklaşım
CompletableFuture
JDK'dan itibaren
8
Zorluk
Orta
CompletableFuture zinciri
Mevcut

JDK 8'den itibaren geniş çapta kullanılabilir (Mart 2014)

CompletableFuture, bloklamayan asenkron hatlar sağlar. İşlemleri thenApply, thenCompose, thenAccept ile zincirleyin. Hataları exceptionally() ile işleyin. Birden fazla future'ı allOf/anyOf ile birleştirin.

Paylaş 𝕏 🦋 in