Métodos synchronized: São uma maneira eficaz de obter sincronização em classes criadas por nós.
Limitação: Não funcionam quando queremos sincronizar métodos de classes de terceiros, sem acesso ao código-fonte.
Problema: Não é possível adicionar o modificador synchronized diretamente em métodos dessas classes.
Solução: Usar blocos synchronized para envolver as chamadas aos métodos da classe desejada.
synchronized(refobj) {
// instruções a serem sincronizadas
}
refobj: Referência ao objeto que está sendo sincronizado.
Bloco sincronizado: Garante que nenhuma outra thread chame métodos sincronizados no objeto até o bloco ser finalizado.
Exemplo: É possível sincronizar chamadas ao método
sumArray()
envolvendo-as em um blocosynchronized
.
Top comments (0)