Representação gráfica de threads
16/06/2025

Virtual Threads en Java

Montevidéu, 16 de junho de 2025.

Neste artigo, a Sofis Solutions analisa as vantagens e o impacto dos Virtual Threads introduzidos na JEP 444 do Java. Esse novo modelo permite criar threads leves e altamente eficientes, gerenciados diretamente pela Máquina Virtual Java (JVM), representando uma mudança significativa em relação às threads tradicionais. 


A cada dia, as aplicações precisam processar volumes cada vez maiores de dados de forma simultânea e eficiente. O Java tem consciência dessa necessidade desde suas primeiras versões, implementando o uso de threads para executar tarefas concorrentemente conforme a quantidade de processadores disponíveis na CPU. No entanto, as threads tradicionais são recursos custosos: cada uma consome memória para sua pilha (stack) e depende do sistema operacional para o agendamento, o que pode levar a bloqueios e baixa escalabilidade. Para mitigar isso, adotaram-se técnicas como os pools de threads, nos quais os desenvolvedores precisavam gerenciar manualmente sua criação, reutilização e sincronização, o que aumentava a complexidade das aplicações.

A partir do Java 19 como prévia, e de forma estável no Java 21, foi introduzido um novo modelo chamado Virtual Threads (JEP 444). Essa abordagem propõe que a JVM, e não o sistema operacional, seja responsável por gerenciar o ciclo de vida das threads. Com isso, elimina-se a dependência direta dos recursos do sistema, permitindo criar milhões de threads leves que não bloqueiam recursos físicos enquanto estão em espera.

Em termos simples, uma Virtual Thread é uma thread Java gerenciada pela JVM, que se desacopla da thread do sistema operacional durante momentos de espera (por exemplo, uma operação de I/O bloqueante). Isso permite que muitas Virtual Threads compartilhem um número reduzido de threads de plataforma, alcançando muito mais escalabilidade com menor esforço. Além disso, mantém-se o modelo tradicional de programação com Runnable, o que possibilita a migração de código existente sem grandes refatorações.

A criação de uma thread virtual é tão simples quanto o exemplo a seguir:

Runnable tarefa = () -> System.out.println("Executando em: " + Thread.currentThread()); Thread.startVirtualThread(tarefa);

Este trecho lança uma tarefa concorrente utilizando uma Virtual Thread — algo que, em versões anteriores, exigia mais configuração e gerenciamento manual. Internamente, a JVM cuida de toda a orquestração, liberando o desenvolvedor de se preocupar com detalhes de baixo nível.

As Virtual Threads melhoram significativamente a forma como programamos tarefas concorrentes em Java. O modelo é mais leve, mais fácil de usar e promete um desempenho superior em aplicações altamente concorrentes. Ainda há caminho a percorrer, especialmente na adaptação de bibliotecas que gerenciam suas próprias threads internamente, mas a direção é clara: o Java avança para um modelo de concorrência mais simples e poderoso, pronto para os desafios do software moderno.

Últimas notícias
panel con preguntas e intercambio entre el público y los especialistas invitados
22/10/2025
FOCAL 2025: Inteligencia Artificial y Transparencia en la Gestión Pública

Entre el 14 y el 16 de octubre de 2025, se celebró en Santiago de Chile el XI Foro de Contadurías Gubernamentales de América Latina (FOCAL), un espaci......

A imagem mostra uma colagem de negócios e tecnologia com um aperto de mão no centro, simbolizando alianças estratégicas, inovação e transformação digital.
18/08/2025
Compromisso com a Estratégia do Pacto Global 2024–2025

No âmbito da estratégia 2024-2025 do Pacto Global das Nações Unidas, que propõe cinco mudanças transformadoras para acelerar o impacto empresarial nos......

A imagem mostra uma interface digital com painéis de análise de dados, inteligência artificial e gráficos,
15/08/2025
Impulsionando o CRM com Biona Search: inteligência conversacional para transformar dados em decisões

Em muitas organizações, o CRM (Customer Relationship Management) é o núcleo operacional do relacionamento com o cliente. No entanto, acessar as inform......