Output threadsafe

di il
1 risposte

Output threadsafe

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

1 Risposte

  • Re: Output threadsafe

    In realtà ripensandoci ho usato un nuovo Thread e ho usato thread.sleep(5000) prima di synchronized(y) e un altro prima di "main".
    Non serviva fare uno script
    l'unica non capisco come mai in (b) ho come output (main),(main,t2) e non (main),(t2,main)
Devi accedere o registrarti per scrivere nel forum
1 risposte