How can you make a Thread wait for sometime? One way is to call wait on some lock.
How to specify which lock to use for this ? You have to call wait in a synchronized context , so for attaining synchronization you need a lock and that lock would be used for wait.After the execution of wait the thread would be blocked in the wait set for that lock and will be in that state untill it times out or some other thread notifies it.
You should be able to call wait from any class , not only from Thread class .So it has been put in Object class not in Thread class.