📜  门| GATE-CS-2015(Set 1)|问题19

📅  最后修改于: 2021-06-28 18:23:45             🧑  作者: Mango

共享初始值为2的变量B的以下两个函数P1和P2同时执行。

P1() 
{ 
   C = B – 1; 
   B = 2*C;  
}

P2()
{
   D = 2 * B;
   B = D - 1; 
}

B执行后可能取的不同值的数量为
(A) 3
(B) 2
(C) 5
(D) 4答案: (A)
说明:并发过程可以遵循以下几种方式。

C = B – 1;   // C = 1
 B = 2*C;    // B = 2
 D = 2 * B;   // D  = 4
 B = D - 1;   // B  = 3


 C = B – 1;   // C = 1
 D = 2 * B;   // D = 4
 B = D - 1;   // B = 3
 B = 2*C;    // B = 2

 C = B – 1;  // C = 1
 D = 2 * B; // D =  4
 B = 2*C;  // B = 2
 B = D - 1;  // B = 3

 D = 2 * B; // D =  4
 C = B – 1;  // C = 1
 B = 2*C;  // B = 2
 B = D - 1;  // B = 3

 D = 2 * B; // D =  4
 B = D - 1;  // B = 3
 C = B – 1;  // C = 2
 B = 2*C;  // B = 4 

B共有3种可能的值:2、3和4。这个问题的测验