Я имею немного трудности в понимании алгоритма Питерсона: Алгоритм говорит:Сложность в понимании Алгоритм Петерсона
flag[i] = true;
turn = j;
while (flag[j] && turn == j);
// critical section
...
// end of critical section
flag[i] = false;
Теперь давайте предположим, первоначально флаг [0] = флаг [1] = истинный
Если P1 запускается, он будет занят в цикле while, так как флаг [0] и turn == 0 оба будут true. Теперь, если P0 не хочет выполнять, P1 никогда не выполнит критический раздел.
Прошу прояснить мои сомнения, могут быть пробелы в моем понимании.
Благодаря
Спасибо. Поэтому он должен быть инициализирован ложным. – anupamD
Да, правильно. Инициализация как истины может привести к тупиковой ситуации. – samgak