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++;
}