Please tell me one thing. If the methods wait(), notify() and notifyAll() are used in context of mulithreading, then why are these methods of java.lang.Object class and not java.lang.Thread class?
This is a very good question; so good that it has been asked many many times. A simple search of this forum will likely bring you many decent replies to similar questions. For instance this one: Why-java-lang-Object