单选题
设有两个进程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
A
B
C
D
【正确答案】
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选项。
提交答案
关闭