segunda-feira, 27 de junho de 2011

Dicas de Programação: 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... :P

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!

6 comentários:

Madju disse...

Se voce nao transmitir confiança naquilo que você fala, dificilmente você conseguira leitores para o seu artigo. e na minha opinião, se você não consegue explicar o que esta na sua cabeça, pode ter a certeza que você também não entendeu.

Takemura disse...

E quem disse que eu quero conseguir leitores?!?
Esse comentario eh o que chamam de trolar? :P

Unknown disse...

Ei cara eu entendi. Valeu.

Anônimo disse...

Talvez fosse legal sim você se dedicar a explicar um pouco melhor o conceito. Ou, ao menos, citar uma fonte onde haja um bom detalhamento. ;)

Wagner disse...

Muito boa a explicação.

Unknown disse...

madju tá chorando pq nao entendeu. ah volta pra humanas!