单项选择题

下面是一个并发进程的程序代码,正确的说法是______。
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.进程会死锁,也会饥饿