当前位置: 首页 > 知识库问答 >
问题:

Java-尝试暂停线程[重复]

席俊驰
2023-03-14

可能重复:
Java等待并通知:IllegalMonitorStateException

有什么问题

    private final Object lock; 
public synchronized void run() {
    while (numItersCompleted < maxNumIters) {
        while (guiState == GuiState.PAUSED) {
            try {
                lock.wait(); // problematic line

投掷:

java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)

共有1个答案

吕修筠
2023-03-14

您没有围绕锁synchronized

public void run() {
    while (numItersCompleted < maxNumIters) {
        while (guiState == GuiState.PAUSED) {
            try {
                synchronized (lock) {
                    lock.wait(); // problematic line
                }

我本来要加一个链接,但加里跟我打赌

 类似资料:
  • 问题内容: 有没有一种方法可以使用ExecutorService暂停/恢复特定线程? 想象一下,我想停止id == 0的线程(假设为每个线程分配了一个增量ID,直到达到线程池的大小为止)。 过了一会儿,通过按下一个按钮,我想恢复该特定线程,并将所有其他线程保留为当前状态,这些状态可以暂停或恢复。 我在Java文档中发现了PausableThreadPoolExecutor的未完成版本。但这不适合我

  • 本文向大家介绍C#程序暂停线程,包括了C#程序暂停线程的使用技巧和注意事项,需要的朋友参考一下 要在C#中暂停线程,请使用方法。 您需要设置线程要暂停的毫秒数,例如5秒钟,请使用- 示例 让我们看看如何循环并设置sleep方法来暂停线程。 输出结果

  • 有没有办法使用ExecutorService暂停/恢复特定线程? 想象一下,我想停止id=0的线程(假设为每个线程分配了一个增量id,直到达到线程池的大小)。 过了一会儿,按下一个按钮,比如说,我想恢复那个特定的线程,并让所有其他线程保持其当前状态,可以暂停或恢复。 我在Java文档中发现了PausableThreadPoolExecutor的一个未完成版本。但它不适合我的需要,因为它会恢复池中的

  • 我是Spring云流的新手。我使用的是我们团队成员之一写的活页夹。我使用执行器的/绑定endpoint暂停/恢复应用程序中的使用者。但我有个错误 问题1。我猜这是因为我使用的活页夹不支持暂停/恢复操作。有谁能给我举一些例子,在那里我可以找到如何将此功能添加到活页夹? Qn 2。我也使用执行器endpoint尝试启动/停止。停止工作正常,但在启动时,我得到了以下错误 是否有人可以提供一些关于此错误的

  • 问题内容: 我声明我已阅读有关线程的内容,但从未使用过。所以我问你:) 我有两个线程:和,其中管理GUI和逻辑。 我将从开始。 然后在绘制GUI时,我将其暂停,以等待到达X点的run方法。 当到达X点进入run方法时,我暂停并继续。 并共享一些变量来管理GUI和逻辑… 我可以做吗?如果是,如何?:) 问题答案: 使用和方法: -使当前线程等待,直到另一个线程调用 该对象的方法。 -唤醒正在该对象的

  • 问题内容: 我正在用Java Swing编写应用程序。我需要的是一个可以使用图形界面中的按钮停止“阐述”线程的过程。 这里有一个简单的项目专注于我的需求 问题很简单:在实际的应用程序中,用户设置一些选项,然后启动线程,对选定的数据进行详细说明。 我想提供一个“暂停”按钮,以便用户可以暂时停止详细说明并进行必要的检查,然后可以恢复操作。 我编码的方式是停止的图形线程,而不是“精化”线程。 如果运行示