Concurrency İleri

Yapılandırılmış eşzamanlılık

Eşzamanlı görev ömürlerini tek bir iş birimi olarak yönetin.

✕ Java 8
ExecutorService exec =
    Executors.newFixedThreadPool(2);
Future<User> u = exec.submit(this::fetchUser);
Future<Order> o = exec.submit(this::fetchOrder);
try {
    return combine(u.get(), o.get());
} finally { exec.shutdown(); }
✓ Java 25 (Preview)
try (var scope = new StructuredTaskScope
        .ShutdownOnFailure()) {
    var u = scope.fork(this::fetchUser);
    var o = scope.fork(this::fetchOrder);
    scope.join().throwIfFailed();
    return combine(u.get(), o.get());
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🛡️

İş parçacığı sızıntısı yok

Tüm çatallanmış görevler kapsam kapanmadan önce tamamlanır.

Hızlı hata

ShutdownOnFailure, biri başarısız olursa kardeş görevleri iptal eder.

📐

Açık yapı

Görev ömrü koddaki sözcüksel kapsamla eşleşir.

Eski Yaklaşım
Elle İş Parçacığı Yaşam Döngüsü
Modern Yaklaşım
StructuredTaskScope
JDK'dan itibaren
25
Zorluk
İleri
Yapılandırılmış eşzamanlılık
Önizleme

JDK 25'te önizleme (beşinci önizleme, JEP 505). --enable-preview gerektirir.

Yapılandırılmış eşzamanlılık, bir grup eşzamanlı görevi tek bir işlem olarak ele alır. Herhangi bir alt görev başarısız olursa diğerleri iptal edilir. Kapsam, iş parçacığı sızıntısı olmadığını garanti eder ve açık üst-alt ilişkileri sunar.

Paylaş 𝕏 🦋 in