两个并发进程的程序如下:
begin
N:integer;
N:=3
cobegin
processA
begin
L1:N:=N+5;
gotoL1
end;
processB
begin
L2:print(N);
N:=0;
gotoL2
end;
coend;
end;
若pr
两个并发进程的程序如下:
begin
N:integer;
N:=3
cobegin
processA
begin
L1:N:=N+5;
gotoL1
end;
processB
begin
L2:print(N);
N:=0;
gotoL2
end;
coend;
end;
若processA先执行了三个循环,然后processA和processB又并发执行了一个循环,写出可能出现的打印值。什么情况下会出现与时间有关的错误?请用PV操作实现同步,使两并发进程能正确执行。
【正确答案】:

可能的值是 18或 23。这是因为 process A执行三个循环后,N=18,之后 A和 B并发执行,可能先执行A中的N:=N+5,再执行B中的print(N);这样就会得到23,也可能先执行B中的pint(N);这就会得到18。


【题目解析】:考点:并发进程
Top