问题标签 [illegalmonitorstateexcep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
30862 浏览

java - 为什么 notifyAll() 在 Integer 上同步时会引发 IllegalMonitorStateException?

为什么这个测试程序会导致java.lang.IllegalMonitorStateException?

结果:

0 投票
1 回答
997 浏览

java - IllegalMonitorStateException

什么可能导致我在这段代码中得到 IllegalMonitorStateException

我有点困惑,因为据我所知,正在运行的线程必须对调用通知的对象进行监控。在我看来,我的代码不会错,但不知何故。

0 投票
1 回答
1385 浏览

multithreading - Java中的线程同步,IllegalMonitorStateException

我正在尝试同步两个线程-“主”线程和一个可运行线程。我得到了 IllegalMonitorStateException,但我不完全理解“你没有对象的锁”是什么意思。

这是我的代码:

0 投票
4 回答
2542 浏览

java - 什么会导致同步块内部的 IllegalMonitorStateException?

我们今天遇到了一个非常令人惊讶的异常。在同步块内部,我们调用 wait() 并抛出IllegalMonitorStateException. 什么会导致这种情况?

这发生在经过充分测试的开源代码中:http: //svn.apache.org/viewvc/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/Mux.java ?view=markup #l222

我们消除了明显的原因:

  • 我们是否在正确的变量上同步?是的,它是muxLock
  • 它是一个可变变量吗?不,muxLock是最终的
  • 我们是否使用了任何可能影响监视器行为的奇怪“-XX:”JVM 标志?不,但我们正在通过 JNI 启动嵌入在 C++ 应用程序中的 JVM。
  • 这是一个奇怪的JVM吗?不,这是 Sun 的 1.6.0_25 win/x64 JRE
  • 这是一个已知的 JVM 错误吗?在http://bugs.sun.com/bugdatabase找不到任何相关内容

所以,我试图想出更多牵强的解释。

  • 未捕获的内存不足错误会导致监视器状态被搞砸吗?我们正在研究这个,但我们还没有看到内存错误的证据。

更新:(基于评论)

我还从堆栈跟踪和断点验证了当抛出异常时线程确实在同步块内。其他一些不相关的代码不会发出异常(除非某些东西真的让 Eclipse 感到困惑!)

0 投票
2 回答
874 浏览

java - 餐饮哲学家任务。将我的概念转化为代码

我对 Java 线程很陌生。尝试使用Java的同步概念来做死锁机制。这其中存在一些问题。我想知道我应该如何改进我的代码。我的目标是避免死锁

编辑: eat()方法请查看

0 投票
2 回答
541 浏览

java - 在作业调度程序中使用 wait() 时出现 IllegalMonitorStateException

我正在开发一个基于 Java RMI 的项目,该项目具有Client-->Job Scheduler--> Server structure.

我在作业调度程序类中有两种方法,如下所示。注释解释了每一行代码的用途。

我在第一次调用wait()in 方法时收到 IllegalMonitorStateException acceptJob()。任何想法,如何解决这个问题。

谢谢,吉腾

0 投票
1 回答
20055 浏览

java - IllegalMonitorStateException notify() 和 wait()

我有个问题。当我notify()在同步块中使用时,我得到 IllegalMonitorStateException。谁能帮我解决这个问题?

我需要一个线程将一个字符发送到第二个线程,然后这个线程必须等待,第二个线程打印这个字符。在第二个线程等待之后,第一个线程再次发送下一个字符

主.java:

0 投票
2 回答
3771 浏览

java - 带有条件的 IllegalMonitorStateException

所以我正在尝试编写一个打印出以下输出的程序:

44
33
22
11

该程序应该是多线程的,并且必须使用锁来防止竞争条件。它还必须利用 Condition 以便当线程要打印的数字与变量 threadnum(必须打印的下一个数字)不对应时,它必须等待。我已经得到了大部分它,除了当我尝试运行它时我得到 IllegalMonitorStateExceptions 并且我不确定是什么导致它,也不知道如何修复它。我会很感激一些帮助。提前致谢。

主要类:

0 投票
2 回答
286 浏览

java - 无法在 wait() 上放置线程 - IllegalMonitorStateException

背景:

我有一个微型机器人(这些扩展Thread类)的应用程序,它们在地图的节点上相互处理。我正在尝试对进入节点的逻辑进行编程。该节点负责执行在该节点相遇的两个机器人之间的交易。

我想在节点中编码的逻辑如下:

  • 机器人 A 来了。
  • 如果节点上存在另一个 Bot(例如 Bot B)
  • 然后在 Bot A 和 Bot B 之间促成交易。
  • ELSE告诉 Bot A 等到另一个 Bot 到达节点。

我的尝试

这是我对上述逻辑进行编码的尝试。

但是当我运行它时,我得到IllegalMonitorStateExceptiontrader.wait()在线。我研究过,显然这是一个常见的问题。所以我尝试了,synchronized(trader)但这只是冻结了一切,我什至无法调试代码,因为一切都被冻结了。

0 投票
1 回答
258 浏览

java - 无法从 GUI 线程获取字符串到 java 中的“逻辑”线程

我一直在编写一个程序,它可以搜索一个数字列表,以找到与某个其他数字相加的那些。那里没有问题,算法虽然可能不是很有效,但很实用。

现在必须从文本文件中获取数字列表,但我一直在尝试这样做,以便用户可以将列表复制粘贴到 TextArea 中,按 Enter,然后让程序将字符串发送回普通(非 GUI)线程。

为此,我遵循了这个例子(最佳答案)。我使用的是按键事件而不是按钮按下,以及字符串而不是链接列表,但除此之外,非常相似。

我创建和运行 TextDemo 的代码(是的,我改编了一个教程程序):

TextDemo 本身(减去免责声明,请不要提醒 Oracle :)):

当我运行代码时,它似乎可以工作,直到我按下回车键并且我的程序崩溃了。错误代码(我只包括前 5 行,完整版在这里:http: //img.photobucket.com/albums/v242/ChaosGuide/illegalmonitorstateexception.png):

这是我第一次做任何涉及线程的事情,所以我真的不明白我做错了什么。

任何帮助是极大的赞赏。