Sobes.tech
Junior — Middle

Como funciona o mecanismo de sincronização usando a palavra-chave synchronized em Java?

sobes.tech IA

Resposta da IA

No Java, a palavra-chave synchronized é usada para gerir o acesso a recursos partilhados num ambiente multithread. Ela garante que apenas um thread pode executar um bloco de código ou método marcado como synchronized num dado momento para um objeto monitor específico.

Quando um thread entra num bloco synchronized ou num método synchronized, ele adquire o monitor (fecho) do objeto especificado em synchronized. Outros threads que tentem entrar no mesmo bloco ou método synchronized com o mesmo monitor ficarão bloqueados até que o primeiro thread saia do bloco e libere o monitor.

Exemplo:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

Aqui, os métodos increment e getCount estão sincronizados, o que garante uma atualização e leitura corretas da variável count num ambiente multithread.