reentrantlock

¿Por qué usar un ReentrantLock si se puede usar sincronizado(esto)?

Estoy tratando de entender qué hace que el bloqueo en concurrencia sea tan importante si se puede usar synchronized (this). E ... gt;>>"+ints.get(x)); } } finally { lock.unlock(); } return random; }