Salve a tutti,
su wikipedia ho trovato il seguento algoritmo di dekker:
Non riesco bene a capirlo, ovvero, a che serve la variabile turno? non basterebbe utilizzare il flag?codice:// dichiarazione delle variabili globali comuni boolean flag0 = false, flag1 = false; int turno = 0; // oppure: int turno = 1; // processo #0 // ... P: flag0 = true; while (flag1) { // busy waiting if (turno == 1) { flag0 = false; goto P; } } // <sezione critica> flag0 = false; turno = 1; // ... // processo #1 // ... P: flag1 = true; while (flag0) { // busy waiting if (turno == 0) { flag1 = false; goto P; } } // <sezione critica> flag1 = false; turno = 0; // ...