Ho provato anche un'altra sequenza, di un altro esercizio "ABAA" :
Nel main ovviamente ho dato lo start a A1,A2,A3,B1.codice:public void passaA(){ mutexA.P(); System.out.println("Sezione critica "+Thread.currentThread().toString()); sB.V(); sA.P(); mutexA.V(); } public void passaB() { sB.P(); System.out.println("Sezione critica "+Thread.currentThread().toString()); sA.V(); sA.V(); }
Quello che succede nn lo capisco, perchè a volte va bene a buon fine, altre invece stampa
ABA l'ultimo Thread molte volte non viene stampato ( processato ), perchè secondo voi?