题40

题目

在 Peterson 算法中, flag 数组的作用是 ( ) 。
A. 表示每个线程是否想进入临界区
B. 表示每个线程是否已进入临界区
C. 表示每个线程是否已退出临界区
D. 表示每个线程是否已完成任务

分析

flag是谦让,也就是flag[i] = true 表示线程i想进入临界区,谦让、让i进来,但是还没有进入,flag[i] = false 表示线程i不想进入临界区。

A
flag 数组用于标记各个线程想进入临界区的意愿。当一个线程想要进入临界区时, 它将自己对应的 flag 值置为 true;
当一个线程退出临界区时, 它将自己对应的 flag 值置为 false。
这样, 如果两个进程都争着想进入临界区, 那么可以让进程将进入临界区的机会谦让给对方。