. 属于同一进程的两个线程 T1和 T2并发执行,共享初值为 0 的全局变量 X。T1和 T2实现对全局变量 x 加 1 的伪代码分别如下: T1: temp1=X; temp1=temp1+1; X=temp1; T2: temp2=X; temp2=temp2+1; X=temp2; 2个线程进行到任意一步都能被对方打断,执行另外一个线程的代码,请问在所有可能的执行序列中,使 x 的值为 2 的序列个数有几种? A 1 B 2 C 3 D 4 E 5
时间: 2023-06-09 17:03:15 浏览: 236
根据题目中的伪代码可以得出,在每个线程执行完自己的temp赋值后,都会将X加1,所以要使x的值为2,必须有一个线程执行完temp赋值后,紧接着执行X+=1,然后另一个线程再执行temp赋值和X+=1。所以,共有2种可能的执行序列:T1先执行,然后T2执行;T2先执行,然后T1执行。因此,答案为B 2。
阅读全文