Acquires the lock only if it not held by another thread.
true if the lock was free and was acquired by the
current thread, or the lock was already held by the current
thread; false otherwise.
public void unlock()
Attempts to release this lock. The lock is actually released if at
least as many unlock() as lock() have been performed
on this ReentrantLock by the current thread.
throws IllegalMonitorStateExeception if the current thread does not hold