题41
题目
在 Peterson 算法中, turn 变量的作用是 ( )。
A. 表示轮到哪个线程进入临界区
B. 表示哪个线程先发出访问请求
C. 表示哪个线程后发出访问请求
D. 表示哪个线程已进入临界区
分析
turn 变量用于指示允许进入临界区的线程编号。
当一个线程想要进入临界区时, 它将 turn 置为对方的编号, 表示优先让对方先进入。
当一个线程检查到对方的 flag 为 true 时, 表示对方也想进入, 这时就需要根据 turn 来决定谁先进入。
如果 turn 等于自己的编号, 表示轮到自己进入, 那么可以直接进入。如果 turn 等于对方的编号, 表示轮到对方进入, 那么需等待对方退出。
解
A