Sanal iş parçacığı yürütücüsü
Sınırsız hafif eşzamanlılık için sanal iş parçacığı yürütücülerini kullanın.
Kod Karşılaştırması
✕ Java 8
ExecutorService exec =
Executors.newFixedThreadPool(10);
try {
futures = tasks.stream()
.map(t -> exec.submit(t))
.toList();
} finally {
exec.shutdown();
}
✓ Java 21+
try (var exec = Executors
.newVirtualThreadPerTaskExecutor()) {
var futures = tasks.stream()
.map(exec::submit)
.toList();
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Boyutlandırma yok
Ayarlanacak havuz boyutu yok — gerektiği kadar iş parçacığı oluşturulabilir.
Hafif
Sanal iş parçacıkları MB değil, KB bellek kullanır.
Otomatik kapatma
try-with-resources kapatmayı otomatik olarak yönetir.
Eski Yaklaşım
Sabit İş Parçacığı Havuzu
Modern Yaklaşım
Sanal İş Parçacığı Yürütücüsü
JDK'dan itibaren
21
Zorluk
Orta
JDK Desteği
Sanal iş parçacığı yürütücüsü
Mevcut
JDK 21 LTS'den itibaren geniş çapta kullanılabilir (Eylül 2023)
Nasıl çalışır
Sanal iş parçacığı yürütücüsü her görev için yeni bir sanal iş parçacığı oluşturur. Havuz boyutlandırması gerekmez — sanal iş parçacıkları milyonlarca oluşturulabilecek kadar ucuzdur.
İlgili Belgeler