O que é synchronized em Java

Como prometido, vou falar do que seja o synchronized em Java. 🙂

Sincronizar métodos significa que, ao rodar sua aplicação e um mesmo método for chamado ao mesmo tempo (por exemplo, em uma execução de Thread), a execução da primeira chamada será feita por completo para que, depois, a próxima chamada seja feita, ou seja, o bloco sincronizado não é executado de forma paralela e sim, em forma de uma fila (um depois do outro).

Sei que não é fácil entender (e nem de explicar ), mas com o tempo a gente pega a prática

O importante é saber que, na maioria das vezes, prefira usar classes que não usam métodos sincronizados (tipo ArrayList em vez de Vector, StringBuilder em vez de StringBuffer), pois são mais performáticos.

Somente utilize classes com métodos sincronizados, se você precisar que o bloco de execução seja executado por inteiro, sem interrupções (isso é mais para sistemas que usam Thread ).

Acho que em vez de explicar, compliquei mais a vida dos programadores 😛

Exemplo? Fica para a próxima (é díficil de fazer :P), mas se quiser, a declaração do método é assim:

public synchronized void incA() {
a++;
}

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.