第 30 题
进程 P1 和 P2 均包含并发执行的线程,部分伪代码描述如下所示。
进程 P1
int x = 0;
Thread1()
{
int a;
a = 1; x += 1;
}
Thread2()
{
int a;
a = 2; x += 2;
}
进程 P2
int x = 0;
Thread3()
{
int a;
a = x; x += 3;
}
Thread4()
{
int b;
b = x; x += 4;
}
下列选项中,需要互斥执行的操作是( )。
A. a=1 与 a=2 B. a=x 与 b=x C. x+=1 与 x+=2 D. x+=1 与 x+=3
[tag_link]
正确答案:C
P1 中对 a 进行赋值,并不影响最终的结果,故 a = l 与 a = 2 不需要互斥执行;a = x 与 b = x 执行先后不影响 a 与 b 的结果,无须互斥执行;x+=1 与 x+=2 执行先后会影响 x 的结果,需要互斥执行;P1 中的 x 和 P2 中的 x 是不同范围中的 X,互不影响,不需要互斥执行。