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