A reentrant lock, or simply an RLock, is a synchronization primitive that can be acquired multiple times by the same thread.
It uses the concept of the proprietary thread. This means that in the locked state, some threads own the lock, while in the unlocked state, the lock is not owned by any thread.
The next example demonstrates how to manage threads through the RLock() mechanism.