Regarding #6 used ReenterantLock & Condition implimentation for locking