notify are said to be communication mechanism in threads but then why are they not declared in
Thread class and are declared in
Object class instead?
because each object is a monitor
and so you can have multiple sets of waiting threads, and having to manage waiting threads yourself requires extra bookkeeping (now handled by the VM) and is prone to deadlock and other thread related bugs