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
  • Recursos compartilhados e sincronização: problemas de acesso

    JAVA 25 SELF
    Nível 52,Aula 0
    Esta aula é sobre o que é um recurso compartilhado em aplicações multithread, por que surgem condições de corrida (race condition) e “atualizações perdidas”, e como proteger os dados com synchronized. Vamos analisar técnicas básicas de sincronização (métodos e blocos), falar sobre ferramentas modernas de java.util.concurrent ( Lock, ReentrantLock, Semaphore etc.), ver exemplos práticos com incremento de contador e erros típicos (não atomicidade de i ++, objeto de bloqueio incorreto, mitos sobre volatile).
    Disponível
  • synchronized, volatile: sintaxe e uso

    JAVA 25 SELF
    Nível 52,Aula 1
    Aula prática sobre multithreading: analisamos como funciona a palavra‑chave synchronized (blocos e métodos, monitor do objeto e bloqueio no nível da classe ClassName.class), qual é a diferença entre a visibilidade de alterações via volatile e a atomicidade das operações, por que é conveniente usar flags boolean como volatile, e por que o incremento count ++ requer sincronização. Vamos comparar quando escolher synchronized e quando — volatile, e revisar erros comuns.
    Disponível
  • ReentrantLock e ReadWriteLock: diferenças e exemplos

    JAVA 25 SELF
    Nível 52,Aula 2
    Comparação prática da sincronização clássica por meio de synchronized com primitivos mais flexíveis do pacote java.util.concurrent.locks: ReentrantLock e ReadWriteLock. Vamos ver como controlar bloqueios explicitamente ( lock()/ unlock(), tryLock() com timeout), como escalar leitura com ReentrantReadWriteLock, o que é “justiça” ( fair mode), onde cada ferramenta é apropriada e quais erros ocorrem com mais frequência.
    Disponível
  • Mútexes e semáforos: sintaxe e tarefas

    JAVA 25 SELF
    Nível 52,Aula 3
    Nesta aula, vamos analisar os principais primitivos de sincronização em Java: como proteger seções críticas com synchronized e a classe ReentrantLock (métodos lock()/ unlock(), construção try- finally), e também como limitar o paralelismo com Semaphore (métodos acquire()/ release()). Vamos comparar mútex e semáforo em uma tabela, considerar casos práticos (banco, servidor com limite de conexões) e erros típicos que levam a deadlock e perdas de desempenho.
    Disponível
  • Análise de erros comuns de sincronização

    JAVA 25 SELF
    Nível 52,Aula 4
    Análise prática de erros frequentes de concorrência em Java: unlock()/ release() esquecido em ReentrantLock e Semaphore (resolve-se com try- finally), escolha do monitor errado para synchronized, bloqueios mútuos (deadlock) e a ordem de aquisição dos locks, sincronização excessiva, além dos limites de uso de volatile e a substituição por AtomicInteger. Exemplos, dicas e analogias claras — para que o código não “trave de vez”.
    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