考虑以下用于进程 P1 和 P2 的 C 代码。 a=4, b=0, c=0 (初始化)
P1 P2
if (a < 0) b = 10;
c = b-a; a = -3;
else
c = b+a;
如果进程 P1 和 P2 并发执行(共享变量 a、b 和 c),那么在两个进程完成后,以下哪个不能是 ‘c’ 的值?
(一) 4
(乙) 7
(三) 10
(四) 13答案: (C)
解释:
P1 : 1, 3, 4 -> c = 0+4 =4 {因此选项a}
P2 : i, ii 和 P1 : 1, 2 -> c = 10-(-3) = 13 {因此选项 d}
P1 : 1 , P2 : i, ii 和 P1 : 3, 4 -> c= 10+(-3) = 7 { 因此选项 b}
所以 10 不能是 c 值。这个问题的测验