
Não é segredo que trabalhar com várias threads é algo bem complexo e deve ser trabalhado com cautela.
A palavra reservada syncronized é utilizada para garantir que todas as threads trabalhem sincronizadas.
Utilizando o syncronized em métodos, garantimos que o método só é acessado por 1 thread por vez.
Podemos utilizar o syncronized diretamente na assinatura do método ou somente no bloco do método que gostaria de sincronizar.
Em resumo, podemos sincronizar métodos de instância, métodos estáticos e blocos dos métodos.
Acesse o tutorial completo em: Nakatech.