What is the difference between recursive locking and double check locking?
A recursive lock may internally use two locks [two lock data structures], whereas double check locking looks up [lock-] data twice. The recursive lock [reentrant lock] by definition doesn’t block (deadlock) if acquired more than once by the same thread. Recursive locks can be implemented by means of [typically two] non-recursive locks. [Recursive locks are default with the synchronized modifier in Java, i.e.