问题
问答题
以下是双进程临界区问题的算法,其中布尔型数组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的值决定哪个进程进入临界区。