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
  • Introdução ao multithreading: por que ele é necessário

    JAVA 25 SELF
    Nível 51,Aula 0
    Por que programas precisam de threads e paralelismo: desde uma interface responsiva até ocupar todos os núcleos do processador. Vamos explicar a diferença entre processos e threads, o papel da thread principal main na JVM, casos práticos (UI, servidores, processamento de arquivos) e os riscos: race condition, deadlock, além de ferramentas básicas de sincronização como synchronized. Mostraremos um exemplo simples com Thread e a execução de duas tarefas em paralelo.
    Disponível
  • Iniciando threads: Thread e Runnable, sintaxe

    JAVA 25 SELF
    Nível 51,Aula 1
    Nesta aula analisamos como iniciar threads em Java: conhecemos a classe Thread e a interface Runnable, aprendemos a chamar start() corretamente e a não confundi-lo com run(), usamos classes anônimas e expressões lambda, iniciamos várias threads e observamos o ciclo de vida ( NEW → RUNNABLE → TERMINATED). Falaremos sobre os métodos Thread.currentThread(), getName(), a espera com join() e erros típicos como IllegalThreadStateException.
    Disponível
  • Estados e ciclo de vida da thread

    JAVA 25 SELF
    Nível 51,Aula 2
    Exploramos o ciclo de vida de uma thread em Java: de Thread.State (
    NEW
    ,
    RUNNABLE
    ,
    BLOCKED
    ,
    WAITING
    ,
    TIMED_WAITING
    ,
    TERMINATED
    ) até as transições entre eles. Aprendemos a gerenciar threads com Thread.sleep(...), join(), interrupt(), diagnosticar o estado por meio de isAlive() e getState(), bem como evitar métodos obsoletos como stop()/ suspend()/ resume(). No final — dicas práticas e erros comuns.
    Disponível
  • Parâmetros e prioridades de threads

    JAVA 25 SELF
    Nível 51,Aula 3
    Como passar parâmetros com segurança para threads pelo construtor da classe que implementa Runnable, quando usar expressões lambda e por que é melhor tornar os campos final. Analisamos as prioridades de threads: métodos setPriority/ getPriority, constantes Thread.MIN_PRIORITY, Thread.NORM_PRIORITY, Thread.MAX_PRIORITY e seu efeito no escalonador. Além disso — nomear threads via construtor, setName/ getName, exemplo prático e erros típicos (um Runnable compartilhado, setters, confiar em prioridades).
    Disponível
  • Condição de corrida (race condition)

    JAVA 25 SELF
    Nível 51,Aula 4
    Nesta aula explicamos o que é uma condição de corrida: quando várias threads acessam dados compartilhados simultaneamente e o resultado depende da ordem de escalonamento. Com o exemplo do incremento counter ++, mostramos por que a operação não é atômica e como incrementos se perdem. Analisamos um caso prático com uma conta bancária, as consequências em produção e abordagens de proteção: synchronized, tipos atômicos de java.util.concurrent.atomic (por exemplo, AtomicInteger), bem como a imutabilidade. Encerramos com a seção “Erros comuns”, onde se explica por que Thread-bugs raramente são pegos por testes e por que “tratar” isso com Thread. sleep( 1) é inútil.
    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