Parallel programming using Reentrant lock with await() and signal() methods example