题36

题目

有两个并发进程 ,其程序代码如下:

P1 () {
  x = 1; //A1
  y = 2;
  z = x + y;
  print z; //A2
}
 
P2 () {
  x = -3; //B1
  c = x * x;
  print c; //B2
}

可能打印出的 值有 ( ) ,可能打印出的 值有 ( ) (其中 的共享变量)。
A.
B.
C.
D.

分析

本题的关键是,输出语句 中读取的 的值不同,由于 执行有先后问题,使得在执行 前, 的可能取值有两个,即 ;
这样,输出 的值可能是 ; 输出 的值可能是

B