Voglio conoscere gli output di questo main secondo i due modi (a) e (b):
public class Test{
public static void main(String[]args) {
Object x = new Object();
Object y = new Object();
Thread t1= new Thread(){
@Override
public void run() {
try {
synchronized (x) {
x.wait();
synchronized (y) {
y.notify();
}
}
} catch (InterruptedException e) {
return;
} finally {
System.out.println("t1");
}
}
};
Thread t2=new Thread() {
@Override
public void run() {
try {
synchronized (y) {
y.wait();
}
} catch (InterruptedException e) {
return;
} finally {
System.out.println("t2");
}
}
};
t1.start(); t2.start();
synchronized(y){
y.notify();
(a) System.out.println("main");
}
(b) System.out.println("main");
}
}
per farlo avevo pensato di scrivere uno script per mandare in esecuzione un migliaio di volte, così da vedere lo scheduler come si comporta con i vari thread, visto che da solo manualmente per 20 prove mandava in output solo "main".
Ora la mia domanda è la seguente, come scrivo questo script? non so proprio dove mettere le mani onesto