DEV Community

A instrução synchronized

  • 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 bloco synchronized.

Image description

Image description

Image description

Top comments (0)