为什么在调用this.interrupt()后我得到IllegalThreadStateException?

时间:2010-08-25 20:33:27

标签: java concurrency interrupt

try {
    this.interrupt();
} catch (IllegalThreadStateException e) {
    e.printStackTrace();
}

我发现通过put print语句抛出了IllegalThreadStateException,没有打印出堆栈跟踪。我已经尝试搜索有关Thread.interrupt()和IllegalThreadStateException的现有线程,但没有从中获得太多。我正在使用CDLC 1.1,如果有帮助的话。非常感谢你!

2 个答案:

答案 0 :(得分:1)

CLDC 1.1应支持interrupt(),但CLDC 1.0不支持。也许你的特定实现不想添加这种支持,并通过抛出运行时异常来伪造它。

答案 1 :(得分:0)

如果没有打印堆栈跟踪,听起来好像在其他地方发生错误(并在处理中)。你可以在调试器中单步执行代码并查看该中断是否触发另一个线程出现问题吗?它必须在执行interrupt()

的过程中发生

在我们的IDE中,我会在该行上设置一个断点,点击F5到步骤方法调用,然后继续踩到,直到找到问题为止。一路上,如果我到达没有源代码的地步,我会下载相关的源jar文件并将调试器指向它(听起来很复杂但只需要大约2分钟)。

希望在某种程度上有所帮助,

-gMale