我對同步方法感到困惑。看看這段代碼如下:Android/java:同步對象等待並通知
public void waitOne() throws InterruptedException
{
synchronized (monitor)
{
while (!signaled)
{
monitor.wait();
}
}
}
public void set()
{
synchronized (monitor)
{
signaled = true;
monitor.notifyAll();
}
}
現在,據我所知,同步意味着只有1個線程可以訪問裏面的代碼。如果WaitOne的()由主線程和組稱爲()由子線程叫,然後(從我的理解),它會創建僵局。
這是因爲主線程從未退出同步(顯示器),因爲,因此呼籲從子線程永遠不會抽到同步(顯示器)集()?
我對不對?或者我錯過了什麼?完整的代碼是在這裏:What is java's equivalent of ManualResetEvent?
感謝
如果您在用於同步的對象上調用wait,它將允許另一個線程訪問該對象。這段代碼不會死鎖 – 0xDEADC0DE
啊......我看......謝謝0xDEADC0DE。請在上面寫一篇文章,我會接受你的回答:) – Sam