单选题 设有两个进程P1和P2,counter为共享变量,描述如下:
int counter=6;
P1:
computing;
counter=counter+1;
P2:
printing;
counter=counter-2;
两个进程并发执行,运行完成后,counter的值不可能为______。
  • A.4
  • B.5
  • C.6
  • D.7
【正确答案】 C
【答案解析】本题需要考虑赋值表达式的左值和右值(或理解为分解成两条指令),将指令命名如下: 计算右值 1. counter+1 3. counter-2 左值赋值 2. counter= 4. counter= 初始时counter为6,考虑到进程并发执行的特点,当执行顺序为1,2,3,4或3,4,1,2时,counter的结果为5。当执行顺序为1,3,2,4或3,1,2,4时,counter的结果为4。当执行顺序为1,3,4,2或3,1,4,2时,counter的结果为7。故而无法得到6,因此答案选择C选项。