问题 问答题

以下是双进程临界区问题的算法,其中布尔型数组blicked[2]初始值为false,false,整型turn初始值为0,id代表进程编号(0,1),请说明是否正确。
do
blocked[id]=true;
while(turn!=id)

while(blocked[1-id]);
turn=id;

//编号为id的进程的临界区
blocked[id]=false;
//编号为id的进程的非临界区
while(true);

答案

参考答案:正确。由turn的值决定哪个进程进入临界区。

单项选择题
单项选择题