Java Concurrency - Reentrant Lock


A thread cannot acquire a lock owned by another thread but a thread can acquire a lock that it already owns. Allowing a thread to acquire the same lock more than once enables reentrant synchronization.

This describes a situation where:

  • synchronized code, directly or indirectly, invokes a method that also contains synchronized code,
  • and both sets of code use the same lock.

Without reentrant synchronization, synchronized code would have to take many additional precautions to avoid having a thread cause itself to block.


See also: java/util/concurrent/locks/ReentrantLock This implementation is a reentrant mutual exclusion Lock with the same basic behavior and semantics as the implicit monitor lock accessed using synchronized methods and statements, but with extended capabilities.

Documentation / Reference

Powered by ComboStrap