CodeGym
AI Academy
Promoção
CodeGym University
Aprendizagem
Cursos
Tarefas
Pesquisas & Questionários
Jogos
Ajuda
Cronograma
Comunidade
Usuários
Fórum
Chat
Artigos
Histórias de sucesso
Atividade
Avaliações
Assinaturas
Tema claro

Aulas

  • Avaliações
  • Sobre nós
Iniciar
Comece a aprender
Comece a aprender agora
  • Meu progresso
  • Cursos
  • Mapa da Missão
  • Aulas
  • Threads versus threads virtuais: diferenças e vantagens

    JAVA 25 SELF
    Nível 57,Aula 0
    Vamos analisar em que os threads de plataforma diferem dos virtuais: como funciona o modelo “ Platform Thread → SO” e por que ele é pesado, o que muda com threads virtuais ( Virtual Thread) sobre carrier threads, e como isso traz escalabilidade sem “espaguete” reativo. Veremos na prática com Thread.ofVirtual(), compararemos o comportamento para tarefas I/O‑bound e CPU‑bound, tocaremos na compatibilidade (chamadas bloqueantes como InputStream.read, Socket.accept) e erros típicos (sincronizações antigas, expectativa de “aceleração mágica”).
    Disponível
  • Criação de threads virtuais: Thread.ofVirtual().start()

    JAVA 25 SELF
    Nível 57,Aula 1
    Prática com threads virtuais do Java 21: em que elas diferem das threads de plataforma, como iniciar via Thread.startVirtualThread(...) e Thread.ofVirtual().start(...), quando ainda faz sentido usar new Thread(...) ou Thread.ofPlatform(), e como executar tarefas em massa com Executors.newVirtualThreadPerTaskExecutor(). Vamos ver a espera de término com join(), o tratamento de erros com Future e ExecutionException, bem como erros comuns ao usar Virtual Threads.
    Disponível
  • Escalabilidade e desempenho de Virtual Threads

    JAVA 25 SELF
    Nível 57,Aula 2
    Comparação prática entre threads de plataforma Thread e threads virtuais do Java 21: como a JVM, graças aos “ portadores” (carrier threads), executa centenas de milhares de tarefas com uso mínimo de memória, onde os threads virtuais brilham (I/O-bound) e onde não (CPU-bound). Vamos analisar limitações ( synchronized, bloqueios nativos), melhores práticas ( Executors.newVirtualThreadPerTaskExecutor()), monitoramento via JVisualVM e Java Flight Recorder, bem como erros típicos ao migrar para Virtual Threads.
    Disponível
  • Uso de Executor com threads virtuais

    JAVA 25 SELF
    Nível 57,Aula 3
    Vamos analisar como executar uma tarefa em uma thread virtual com Executors.newVirtualThreadPerTaskExecutor() (Java 21), em que isso difere dos pools clássicos ( newFixedThreadPool, newCachedThreadPool), como encerrar corretamente via shutdown() e awaitTermination(...), obter resultados de tarefas por meio de Future e onde as threads virtuais trazem o maior ganho (I/O em massa, servidores web, testes de carga). No final — erros típicos e nuances.
    Disponível
  • Scoped Values e novos mecanismos de threads (Java 21+)

    JAVA 25 SELF
    Nível 57,Aula 4
    Explicamos por que o clássico ThreadLocal perde relevância no mundo das threads virtuais e como ele dá lugar ao ScopedValue: um contexto vinculado ao escopo de execução, e não à thread. Exemplos passo a passo de passagem de contexto (usuário, REQUEST_ID), escopos aninhados e sua sobreposição, integração com threads virtuais ( Executors. newVirtualThreadPerTaskExecutor()). Discutimos a comparação ThreadLocal vs ScopedValue, dicas práticas, limitações e uma visão sobre Structured Concurrency (preview).
    Disponível
Aprender
  • Cadastro
  • Curso de Java
  • Ajuda com Tarefas
  • Preços
  • Sintaxe Java
Comunidade
  • Usuários
  • Artigos
  • Fórum
  • Chat
  • Histórias de sucesso
  • Atividade
  • Programa de afiliados
Empresa
  • Sobre nós
  • Contatos
  • Avaliações
  • Sala de imprensa
  • CodeGym for EDU
  • Perguntas frequentes
  • Suporte
CodeGymCodeGym é um curso online para aprender programação Java do zero. Este curso é uma maneira perfeita de dominar Java para iniciantes. Contém mais de 1.200 tarefas com verificação instantânea e um escopo essencial da teoria dos fundamentos de Java. Para ajudar você a ter sucesso nos estudos, implementamos um conjunto de recursos motivacionais: questionários, projetos de programação, conteúdo sobre aprendizagem eficiente e carreira de desenvolvedor Java.
Siga-nos
Idioma da interface
English Deutsch Español हिन्दी Français
Português
Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programadores se formam, não nascem" © 2026 CodeGym
MastercardVisa
"Programadores se formam, não nascem" © 2026 CodeGym