[1][13][单选]学生小王在选课期间编写了一个程序,为了保证有足够的学分,他先选了课程 B,然后继续申请心仪的课程 A。若能选到课程 A,则退掉课程 B。部分程序如下:
count.A //表示课程A的信号量
count.B //表示课程B的信号量
{
...
P(count.A);
select_course(A);
release_course(B);
V(count.B);
...
}请问:小王的程序能否达到选到课程A又退掉课程B的目的
一定能
一定不能
有可能
程序无法运行
答案
有可能
解析
当 count.A 永远阻塞的情况下,小王选不了 A 课程;若有人退选,小王将有可能选到课程 A 又退掉课程 B 的目的,故本题答案选 C。涉及考点为第 4 章并发与同步。
转载请注明出处。