• 2022-06-15
    下面是一个并发进程的程序代码,正确的是()。 semaphore x1=x2=y=1; int c1=c2=0; P1( )P2( ) { { while(1) {while(1) {[br][/br] P(x1);P(x2);[br][/br] if(++c1==1) P(y);if(++c2==1) P(y);[br][/br] V(x1);V(x2);[br][/br] computer(A);computer(B);[br][/br] P(x1);P(x2);[br][/br] if(--c1==0) V(y);if(--c2==0) V(y);[br][/br] V(x1); V(x2);[br][/br] }}[br][/br] }}
    A: 进程不会死锁,也不会“饥饿”
    B: 进程不会死锁,但是会“饥饿”
    C: 进程会死锁,但是不会“饥饿”
    D: 进程会死锁,也会“饥饿”
  • 举一反三