我对同步方法感到困惑。看看这段代码如下: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