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.