java - wait() 调用时出现 IllegalMonitorStateException

标签 java multithreading wait

我在我的程序中使用java中的多线程。 我已经成功运行线程,但是当我使用 Thread.wait() 时,它抛出 java.lang.IllegalMonitorStateException 。 如何让线程等待直到收到通知?

最佳答案

您需要处于要等待的对象的同步 block 中,以便Object.wait()工作。

此外,我建议查看并发包而不是老式的线程包。它们更安全easier to work with .

我假设您的意思是Object.wait(),因为您的异常是当您尝试在不持有对象锁的情况下获取访问权限时发生的情况。

关于java - wait() 调用时出现 IllegalMonitorStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388492/

相关文章:

python - 在Django中对要请求的图片进行排队

c++ - 为什么我的程序会在拥有线程的情况下生成 LdrpLoaderLock 死锁?

javascript - 不要等到 javascript 结束函数

java - 如何保存声明为类变量并在 JUnit 测试中初始化的任何对象

java - 网页编码问题

java - 查询 Cloud Datastore 中的嵌入式实体

authentication - 在继续 AngularJS 测试之前, Protractor 不等待登录重定向,有什么建议吗?

java - RED5 Server,构建并修改oflaDemo,版本问题

Java 线程无法与链表正常工作

java - 等待方法完成,并与 System.println 进行奇怪的交互