【发布时间】:2010-10-19 09:48:40
【问题描述】:
我有两个信号量 x(最初为 1)和 y(最初为 0)。
我的线程函数代码是这样的:
...
wait(x);
//setting some vars
signal(x);
wait(y);
...
我想确保线程等待y 排队,即。如果第一个线程首先完成了x-guarded 部分,它应该首先等待y,依此类推。在当前的实现中,signal(x); 之后发生的上下文切换可以防止这种情况发生。
有没有办法做到这一点,还是我必须完全重构代码以防止这种可能性?
【问题讨论】: