超时时出现 java.lang.IllegalMonitorStateException

标签 java

是否可能因为 wait(timeout) 已超过超时时间而在 notifyAll() 上获得 java.lang.IllegalMonitorStateException ? 如果不是,那么当超时时间过后发生 notifyAll() 时会发生什么? notifyAll()wait(timeout) 都被阻塞在同一锁定对象上的同步块(synchronized block)内。

synchronized(lockObj) {
    lockObj.notifyAll();
}

还有:

synchronized(lockObj) {
    lockObj.wait(timeout);
}

最佳答案

不,您不会因此而获得异常(exception)。如果您在没有任何等待的情况下调用 notifyAll,则基本上不会发生任何事情。这不是错误情况。

关于超时时出现 java.lang.IllegalMonitorStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29367449/

相关文章:

java - 地理编码器在 Kitkat 版本以上的 Android 中不起作用

java - 获取特定语言的 imdb 电影标题

java - Jackson - 转换序列化字段值

java - 用于 JDBC 连接的 log4j2 + slf4j 配置

java - 环游世界寻找最低点开始

java - java 统计字符串出现次数

java - 使用 JAVA REGEX 搜索任何给定字符串

java - 启动器 Activity 未启动并崩溃

java - Gson 在 "$Types.resolve"上溢出并出现 StackOverflow 异常

java - 如何从其他应用程序中读取神经节信息?