ReentrantReadWriteLock - http://www-128.ibm.com/developerworks/library/j-jtp10264/index.html why it suppose to be faster than VM level lock - http://osdir.com/ml/java.jsr.166-concurrency/2005-02/msg00031.html and a test about it - http://mechanical-sympathy.blogspot.gr/2011/11/java-lock-implementations.html Samples of how to use it, and how to write test cases about it - http://www.javaspecialists.eu/archive/Issue152.html Some useful VM parameter to tune the locks: -XX:+EliminateLocks , -XX:+DoEscapeAnalysis , -XX:+UseBiasedLocking - http://work.tinou.com/2009/06/lock-coarsening-biased-locking-escape-analysis-for-dummies.html Discuss about 3 difference lock for Java, bias, thin and fat - http://www.javacodegeeks.com/2011/05/how-jvm-handle-locks.html Why using the read lock will make lock detector fail - http://javaeesupportpatterns.blogspot.com.au/2013/01/java-concurrency-hidden-thread-deadlocks.html Basic of synchronization and locking - http://www.takipiblog.com/2013/08/15/5-things-you-didnt-know-about-synchronization-in-java-and-scala/ Better semaphore with striped api - http://codingjunkie.net/striped-concurrency/ Comparing and discuss difference locking approach - http://www.javaspecialists.eu/archive/Issue215.html Compare performance behavior of RWLock, StampedLock and Optimistic lock - http://www.takipiblog.com/2014/05/30/java-8-stampedlocks-vs-readwritelocks-and-synchronized/ Comparing sync and lock - http://www.rationaljava.com/2015/08/a-case-study-in-analysing-latency-lock.html http://vmlens.com/articles/reentrant-lock-cheat-sheet/