下面是一个并发进程的程序代码,正确的说法是( )。 semaphore x1=x2=y=1; int c1=c2=0 cobegin procedure P1 procedure P2 P(x1); P(x2); if(++c1=1)P(y); if(++c2=1)P(y); V(x1); V(x2); computer(A); computer(B); P(x1); P(x2); if(--c1=0)V(y); if(--c2=0)V(y); V(x1); V(x2); end end coend
A.进程不会死锁,也不会饥饿
B.进程不会死锁,但是会饥饿
C.进程会死锁,但是不会饥饿
D.进程会死锁,也会饥饿