Parent thread run indefinitely when started. I want to stop/wait the parent thread from the child thread. For that, I used the same thread instance of class Parent. However, it is not working.
I think you have misunderstood how the wait() method works. Calling wait() on ANY object has the same affect - it causes the CURRENTLY running thread to wait. It looks to me like you're expecting the Parent Thread to wait simply because you have called p.wait().
This is not the case. You could call String.wait() and it would still have the same affect (the wait() method is part of Object - not Thread).