Salve,
sto riprendendo i contatti con java e la programmazione dopo un po' di tempo che me ne ero allontanato per lavoro..

Sto facendo esercitazioncine varie, e ieri sui thred ho riscontrato questo errore a RunTime, che non riesco a risolvere:
Exception in thread "main" java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.notify(Native Method)
at it.ricca.prove.Starter.main(Starter.java:12)
Vi illustro il codice, non so se posso aver fatto errori di importazione o di package.. visto che utilizzo anche per le prime volte NetBeans...:

codice:
   package it.ricca.prove;

    public class WaitingThreadTest implements Runnable{
    String name;
    Object o;
    
    public WaitingThreadTest (String name, Object o){
        this.name=name;
        this.o=o;
    }
    
    public void run() {
        synchronized(o){
           try{o.wait();}
           catch(InterruptedException ie){}
           for(int i=0;i<4;i++)
                System.out.println("Hy!! My name is "+name+"!!!");
        }
    }
    
    public static void main (String[] argv ) {
    Object ob =new Object();
    Thread t1=new Thread (new WaitingThreadTest("Primo", ob));
    Thread t2=new Thread (new WaitingThreadTest("secondo", ob));
    Thread t3=new Thread (new WaitingThreadTest("terzo", ob));
    
    t2.start();
    t1.start();
    t3.start();
   //Arriva fino a stampare questa frase...
    System.out.println("Siamo partiti tutti!!");

  //E QUESTA ULTIMA E' L'ISTRUZIONE CHE GENERA L'ERRORE
    ob.notify();
    }
}

Grazie,