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).