Sobes.tech
Junior — Middle

Quais são as principais vantagens e desvantagens de usar a palavra-chave synchronized em Java?

sobes.tech IA

Resposta da IA

A palavra-chave synchronized em Java é usada para garantir a segurança de threads, bloqueando o acesso às seções críticas do código para que apenas um thread possa executá-las de cada vez.

Vantagens:

  • Facilidade de uso para proteger recursos compartilhados.
  • Garante a atomicidade e a visibilidade das mudanças entre threads.
  • Permite evitar condições de corrida e outros problemas de concorrência.

Desvantagens:

  • Pode levar a uma redução de desempenho devido a bloqueios.
  • Possibilidade de deadlocks se a sincronização for mal organizada.
  • Limita o paralelismo, pois os threads aguardam a liberação do monitor.

Exemplo de uso:

public class Counter {
    private int count = 0;

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

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

Neste exemplo, os métodos increment e getCount estão sincronizados para evitar alterações simultâneas na variável count por vários threads.