Executor avec threads virtuels
Utilisez des executors de threads virtuels pour une concurrence légère illimitée.
Comparaison de Code
✕ 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();
}
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Sans dimensionnement
Sans taille de pool à ajuster — créez autant de threads que nécessaire.
Léger
Les threads virtuels utilisent des Ko de mémoire, pas des Mo.
Auto-closeable
try-with-resources gère la fermeture automatiquement.
Ancienne Approche
Pool de threads fixe
Approche Moderne
Executor de threads virtuels
Depuis JDK
21
Difficulté
Intermédiaire
Support JDK
Executor avec threads virtuels
Disponible
Disponible depuis JDK 21 LTS (sept. 2023)
Comment ça fonctionne
L'executor de threads virtuels crée un nouveau thread virtuel pour chaque tâche. Pas besoin de dimensionner le pool — les threads virtuels sont suffisamment économiques pour en créer des millions.
Documentation Associée