Representación gráfica de hilos threads
16/06/2025

Virtual Threads en Java

Montevideo, 16 de junio de 2025.

En este artículo, Sofis Solutions analiza las ventajas y el impacto de los Virtual Threads introducidos en la JEP 444 de Java. Este nuevo modelo permite crear hilos ligeros y altamente eficientes, gestionados directamente por la Máquina Virtual de Java (JVM), lo que representa un cambio significativo respecto a los hilos tradicionales. 


Cada día, las aplicaciones necesitan procesar cantidades más grandes de datos de manera simultánea y eficiente. Java ha sido consciente de esta necesidad desde sus primeras versiones, implementando el uso de hilos (threads) para ejecutar tareas concurrentemente según la cantidad de procesadores disponibles en la CPU. Sin embargo, los hilos tradicionales son recursos costosos: cada uno consume memoria para su stack y depende del sistema operativo para su planificación, lo que puede llevar a bloqueos y baja escalabilidad. Para mitigar esto, se adoptaron técnicas como los pools de hilos, donde los desarrolladores debían encargarse de su creación, reutilización y sincronización, sumando complejidad a las aplicaciones.

A partir de Java 19 como vista previa, y de forma estable en Java 21, se introduce un nuevo modelo llamado Virtual Threads (JEP 444). Este enfoque propone que la JVM, en lugar del sistema operativo, sea la encargada de gestionar el ciclo de vida de los hilos. Así, se elimina la dependencia directa de los recursos del sistema operativo, permitiendo crear millones de hilos ligeros que no bloquean recursos físicos mientras están en espera.

En palabras simples, un Virtual Thread es un hilo Java gestionado por la JVM, que se desacopla del hilo del sistema operativo en momentos de espera (por ejemplo, una operación de I/O bloqueante). Esto permite que muchos virtual threads puedan compartir un número reducido de hilos de plataforma, logrando una escalabilidad mucho mayor con menor esfuerzo. Además, se mantiene el modelo de programación tradicional con Runnable, lo que permite migrar código existente sin grandes refactorizaciones.

La creación de un hilo virtual (Virtual Thread) es tan simple como se muestra continuación:

Runnable tarea = () -> System.out.println("Ejecutando en: " + Thread.currentThread()); Thread.startVirtualThread(tarea); 

Este fragmento lanza una tarea concurrente usando un Virtual Thread, algo que en versiones anteriores requería más configuración y gestión manual. De manera interna, la JVM se encarga de toda la orquestación, liberando al desarrollador de preocuparse por detalles de bajo nivel.

Los Virtual Threads mejoran notablemente la forma en que programamos tareas concurrentes en Java. El modelo es más liviano, más fácil de usar y promete un rendimiento superior en aplicaciones altamente concurrentes. Aún queda camino por recorrer, especialmente en la adaptación de librerías que internamente gestionan sus propios hilos, pero la dirección es clara: Java avanza hacia un modelo de concurrencia más simple y potente, listo para los desafíos del software moderno.

Últimas noticias
Mano de persona apuntando ícono de IA
17/07/2025
BIonA Inspector: Validación Inteligente de Artefactos Digitales

BIonA Inspector, uno de los módulos más avanzados de la BIonA Suite, responde a esta necesidad actuando como un asistente de validación digital, que a......

Íconos de personas conectadas
11/07/2025
Más personas, mejores decisiones: sostenibilidad guiada por datos

En el marco del Día Internacional de la Población, Sofis Solutions resalta el papel clave de la tecnología para convertir los desafíos demográficos en...

Manos de personas tocando un teclado de computadora
09/07/2025
BIonA Suite: digitalización segura con firma electrónica avanzada

BIonA Suite, la plataforma inteligente de Sofis Solutions para la gestión de procesos, expedientes y trámites digitales, incorpora nativamente BIonA S......