1
我正在尝试在Java中使用Unisex Bathroom问题。简而言之,有一间浴室可供男性和女性使用的无数厕所。男人和女人不能同时在浴室里,但几个男人或女人都可以。男人和女人由线程代表,浴室由监视器(同步方法的共享对象,监视并指示并发如何工作)。Java监视器实现
现在我的问题。通常你会写是这样的:
public synchronized void womanEnter()
{
while(menInTheBathroom>0 || menWaiting>0)
{
wait();
}
//enter bathroom
}
而且唤醒这个过程了,你通知() 但我(我认为)需要能够单独通知的男性和女性。如果有人进入洗手间,我希望他通知队列中的所有人。我可以在显示器中使用两个信号量,但这在excersize中是不允许的。我可以在显示器中使用我可以等待并通知的条件吗?如果可以,我该怎么办?我试过了,但得到了一堆涉及非法监视状态的错误。
[Java unisex bathroom]的可能重复(http://stackoverflow.com/questions/11135207/java-unisex-bathroom) – trashgod 2013-02-25 00:46:49