Sobes.tech
Junior — Middle

Quais mecanismos de sincronização de threads você utilizou nos seus projetos?

sobes.tech IA

Resposta da IA

Nos projetos em Java para sincronização de threads, utilizei os seguintes mecanismos:

  • Palavra-chave synchronized — para bloquear métodos ou blocos de código, garantindo acesso exclusivo a recursos partilhados.

  • Classes do pacote java.util.concurrent:

    • ReentrantLock — uma alternativa mais flexível ao synchronized, com a capacidade de tentar adquirir o bloqueio e com timeout.
    • CountDownLatch, Semaphore, CyclicBarrier — para coordenar o trabalho de múltiplos threads.
    • ConcurrentHashMap — coleção segura para acesso paralelo.
  • Variáveis Volatile — para garantir a visibilidade das mudanças de variáveis entre threads sem bloqueio completo.

Exemplo de uso de synchronized:

public class Counter {
    private int count = 0;

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

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