Sobes.tech
Junior — Middle

Usou o mecanismo ReentrantLock nos seus projetos para gerir threads?

sobes.tech IA

Resposta da IA

Sim, ReentrantLock é uma implementação de bloqueio com capacidade de reentrada, que é usada para gerir o acesso a recursos partilhados em aplicações multithread.

Diferenças em relação ao synchronized:

  • Pode tentar adquirir o bloqueio com ou sem tempo limite (tryLock).
  • Permite gerir os bloqueios de forma mais flexível (por exemplo, desbloquear em outro método).

Exemplo de uso do ReentrantLock:

import java.util.concurrent.locks.ReentrantLock;

ReentrantLock lock = new ReentrantLock();

public void safeMethod() {
    lock.lock();
    try {
        // secção crítica
    } finally {
        lock.unlock();
    }
}

Usei ReentrantLock para gerir o acesso concorrente quando era necessária maior flexibilidade do que a que o synchronized oferece.