下面的程序由3个并发进程和3个二进制信号量组成,信号量初始化为S0 = 1, S1 = 0, S2 = 0。
进程 P0 会打印多少次“0”?
(A)至少两次
(B)正好两次
(C)正好三次
(D)恰好一次答案:(一)
解释:最初只有 P0 可以进入 while 循环,因为 S0 = 1、S1 = 0、S2 = 0。
最低数量按此顺序执行时,打印的时间 0 是两次 (p0 -> p1 -> p2 -> p0)
最大数量按此顺序执行时,打印的时间 0 是三次(p0 -> p1 -> p0 -> p2 -> p0)。
观看 GeeksforGeeks 视频说明:
这个问题的测验