https://www.cwblogs.com/posts/Java-Locks/
Locks in Java - Chang Wan