我有以下代码,我想知道printf
打印的是什么:
我做到了,但我不确定我的答案。
变量:d=0,A=1,B=1,C=0。
p1 p2 p3
while(1) { while(1){ while(1){
P(A); P(B); P(A); P(B); P(C); P(C);
d = 2*d; d = d+1; printf("%d\n",d);
V(C) V(C); V(A); V(B);
} } }
我的尝试是:
C=0, p3
被阻止启动表单进程
p1 A=0, B=0 and d=0 and C=1.
p2 blocks because A=0 and B=0, p3
它还在第二个中阻塞P(C)
。A=0, B=0, C=0
发生死锁,并且printf
不打印任何内容。这个对吗?