Sobes.tech
Junior — Middle

Explique o princípio de funcionamento do monitor como mecanismo para garantir a sincronização de threads.

sobes.tech IA

Resposta da IA

O monitor em Java é um mecanismo de sincronização que garante a exclusão mútua no acesso a recursos partilhados entre threads. Cada objeto em Java tem um monitor associado.

Princípio de funcionamento:

  • Quando um thread entra num bloco ou método sincronizado, ele adquire o monitor do objeto.
  • Enquanto o monitor estiver adquirido, outros threads que tentem entrar no mesmo bloco sincronizado ficam bloqueados e aguardam a liberação do monitor.
  • Após sair do bloco, o monitor é liberado, e um thread em espera obtém acesso.

Isto garante que apenas um thread execute uma secção crítica do código de cada vez, prevenindo condições de corrida e garantindo a integridade dos dados.

Exemplo:

synchronized(this) {
    // secção crítica
    sharedResource++;
}