Executor con hilos virtuales
Usa executors de hilos virtuales para concurrencia ligera ilimitada.
Comparación de Código
✕ 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();
}
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Sin dimensionamiento
Sin tamaño de pool que ajustar — crea tantos hilos como necesites.
Ligero
Los hilos virtuales usan KB de memoria, no MB.
Auto-closeable
try-with-resources maneja el cierre automáticamente.
Enfoque Antiguo
Pool de hilos fijo
Enfoque Moderno
Executor de hilos virtuales
Desde JDK
21
Dificultad
Intermedio
Soporte JDK
Executor con hilos virtuales
Disponible
Ampliamente disponible desde JDK 21 LTS (sept. 2023)
Cómo funciona
El executor de hilos virtuales crea un nuevo hilo virtual para cada tarea. No es necesario dimensionar el pool — los hilos virtuales son lo suficientemente económicos para crear millones de ellos.
Documentación Relacionada