- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在使用以下代码时遇到 IllegalThreadStateException
异常:我已经启动了这个线程一次(通过使用 thread.start()
)并再次尝试在另一个地方启动它,所以使用了以下代码:
thread.interrupt();
thread.start();
但是 thread.start()
抛出 IllegalThreadStateException
。
我应该用什么来解决?
最佳答案
Thread
对象只能启动一次。如果您需要停止/中断一个Thread
,然后又想重新启动它,您应该创建一个新实例,并在其上调用start()
:
thread.interrupt(); // if you need to make sure thread's run() method stops ASAP
thread = new MyThreadSubclass();
thread.start();
IllegalThreadStateException - if the thread was already started.
我知道不能 100% 清楚您不能再次调用 start()
,即使您之前调用过 interrupt()
,但这就是它的工作方式.
如果您查看 API docs for standard Java ,这个问题就比较清楚了。
关于java - 停止线程并再次开始在黑莓中给出 IllegalThreadStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538668/
这个问题是我之前关于堆栈溢出的问题的延续how-to-download-images-asynchronously-from-web-server 。我正在努力在黑莓中制作异步列表。现在它对我来说工作
在我的乒乓球游戏中,每个对象(球和两个 Racket )都在独立线程中运行。 static Ball b = new Ball(195, 145); Thread ball = new Thread(
我的一些用户一直在报告 IllegalThreadStateExceptions,这导致返回以下代码。我无法重新创建它,大多数人都能够毫无问题地执行这部分代码。 代码会定期重新执行,所以旧线程应该被新
我正在尝试多线程,想要实现一个小程序来同时下载多个文件。我创建了一个扩展 Thread 的 FileDownloader 类。 总的来说,我的想法是创建一个包含所有相关 FileDownload 对象
我在 android studio 中有一个 android 应用程序的代码,可以在 1 秒延迟后运行一个方法: new java.util.Timer().schedule(
我一直在研究月球着陆器示例,但在尝试实现关于屏幕时遇到了问题。我将其中一个菜单项(在 onCreateOptionsMenu 中)更改为“关于”选项。选择此选项后,将启动一个新的 Activity 并
这是一个多线程练习,我使用监视器来同步线程。我的监视器或同步没有问题,没有死锁。我想在主线程中创建一些线程。下面的代码生成线程,将它们添加到 ArrayList 并启动它们。使用 switch-cas
import java.io.*; class Sysexecute { public static void main(String args[]) throws IOException,I
我在使用以下代码时遇到 IllegalThreadStateException 异常:我已经启动了这个线程一次(通过使用 thread.start())并再次尝试在另一个地方启动它,所以使用了以下代码
我正在处理线程。但是,当我尝试启动一个线程时,我得到一个异常。在具体的 java.lang.IllegalThreadStateException 中。我的代码是: public void readC
我正在对一个应用程序执行负载测试,并且有5个线程。我希望所有线程都可以随机运行,因此知道设备上的负载。假设运行所有线程的次数为5,则所有线程应成功运行5次而没有IllegalThreadStateEx
根据 中提到的错误,我们的应用每天会收到大约 1k 次崩溃。 OneSignal的 github issues . 错误说明: 不幸的是,我无法重现此问题。所有的崩溃都来自 Crashlytics 报
我收到 IllegalThreadStateException。 在 Eclipse 的调试器下一切正常,但当我尝试在 Firefox 上测试它时,它开始失败。第一次运行正常,刷新网页后出现异常。 这
需要制作一个音乐播放器作为我的简单java项目。它打开一个文件并将名称加载到文本字段中。当按下“播放”按钮时,该名称会在文本字段中圈出,当按下“暂停”按钮时,该圈圈会暂停。播放暂停是 JToggleb
错误消息是java.lang.IllegalThreadStateException(位于timeOutControl.start()行)。可能是什么原因? TimeOutControl timeOu
我有一个java程序,需要很长时间才能编译。 出于测试目的,如果编译需要很长时间,我想终止该程序并重新启动它。 这是我的代码的简化版本: public class Main { public
try { this.interrupt(); } catch (IllegalThreadStateException e) { e.printStackTrace(); } 我发现
只是来完善我的应用程序并使其在用户离开后恢复。当应用程序恢复时,我得到一个 IllegalThreadStateException,这很烦人。这个问题出现在谷歌给出的例子中 Lunar Lander
在 Java 中,我得到这个异常: Exception in thread "main" java.lang.IllegalThreadStateException at java.lang.
我的程序中有 2 个线程和一个主类,每当我尝试运行它时,一个线程就会给我一个 IllegalThreadStateException,我不知道为什么。程序需要进行一场龟兔赛跑,乌龟可以移动10米,直到
我是一名优秀的程序员,十分优秀!