尝试调用时出现以下错误notifyAll()
在同步语句中:在同步上下文之外调用 Object.notify()。
例子:
final List list = new ArrayList();
synchronized(list) {..... invoked notifyAll() here};
你只能打电话wait()
, notify()
, and notifyAll()
在正在同步的对象上:
synchronized (list) {
//...
list.notifyAll();
}
换句话说,调用线程必须拥有该对象的监视器。
如果,里面synchronized (list)
,你打电话给notifyAll()
,你实际上是在调用notifyAll()
on this
而不是list
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)