Yapılandırılmış eşzamanlılık
Eşzamanlı görev ömürlerini tek bir iş birimi olarak yönetin.
Kod Karşılaştırması
✕ 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.
Modern yöntem neden daha iyi
İş 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
JDK Desteği
Yapılandırılmış eşzamanlılık
Önizleme
JDK 25'te önizleme (beşinci önizleme, JEP 505). --enable-preview gerektirir.
Nasıl çalışır
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.
İlgili Belgeler