I did some learnings on ReentrantLock! 

I found an article comparing fair, non-fair locks on Java 5 vs Java 6.
http://sourceforge.net/apps/trac/lilith/wiki/SynchronizedVsFairLock
Granted it's old, but it's kind of cool to see the differences in 'counter' value and distribution.

A non-fair rentry policy is probably fine here.