2 This method calls Thread.sleep() with a lock held. This may result
3 in very poor performance and scalability, or a deadlock, since other threads may
4 be waiting to acquire the lock. It is a much better idea to call
5 wait() on the lock, which releases the lock and allows other threads