Ciao a tutti, devo svolgere un esercizio che preveda l'uso di synchronized, wait e notify per implementare una variante del problema "classico" produttori-consumatori. Ho N thread, ogni thread scrive il proprio nome in una variabile, attende che tutti gli altri lo leggano e muore. Non riesco a capire il flusso di esecuzione del seguente codice:
Edit: Primo problema risolto, ma ne ho un'altro.codice:synchronized(monitor){ while(condition){ //i'm a writer condition = false; doStuffs(); monitor.notifyAll(); //wake up, readers! monitor.wait(); //waiting other thread reading canWrite = true; return; } monitor.wait(); if(stuffs) monitor.notify(); }
La chiamata monitor.notifyAll() non mi sveglia i thread in attesa su quel monitor (definito come static Object monitor = new Object(); ) ...
Grazie in anticipo!

Rispondi quotando