Min*_*ang 4 java synchronization
尝试notifyAll()在synchronized语句中执行调用时出现以下错误:在同步上下文外调用Object.notify().
例:
final List list = new ArrayList();
synchronized(list) {..... invoked notifyAll() here};
Run Code Online (Sandbox Code Playgroud)
您只能在正在同步的对象上调用wait(),notify()和notifyAll():
synchronized (list) {
//...
list.notifyAll();
}
Run Code Online (Sandbox Code Playgroud)
换句话说,调用线程必须拥有对象的监视器.
如果,在内部synchronized (list),你打电话notifyAll(),你实际上是在呼唤notifyAll(),this而不是list.
| 归档时间: |
|
| 查看次数: |
4326 次 |
| 最近记录: |