下述关于双进程临界区问题的算法(对编号为id的进程)是否正确: do{ bloeked[id]=t
下述关于双进程临界区问题的算法(对编号为id的进程)是否正确: do{ bloeked[id]=true; while(turn!id) { while(blocked[1-id]); turn=id: } 编号为id的进程的临界区 blocked[id]=false; 编号为id的进程的非临界区 }while(true); 其中,布尔型数组blocked[2]初始值为{false,false),整型turn初始值为0,id代表进程编号(0或1)。请说明它的正确性,或指出错误所在。