Java ThreadPoolExecutor在一段时间后停止工作



我有一个问题与ThreadPoolExecutor。它可以正常工作几个小时,但有时(在随机时间,有时在2分钟或3小时后)它停止执行提交的任务,程序挂起。

队列已满,此时所有核心线程都处于活动状态。

我根本不知道这是从哪里来的。特别是当所有的核心线程都在工作时,它有时会工作3个小时。

如果有谁能给我一个建议,我将非常高兴。

看一下堆栈转储。这将告诉您线程是否处于阻塞操作中,等待一个永远不会发生、正在工作或真正死锁的条件。

我有一个类似的问题与代码做I/O操作下载网页。在某一时刻,有时,在几分钟或几小时内,线程挂起执行某些I/O操作并停止工作。

如果您是这种情况,请设置流产时间。

在调试器中运行代码,当应用程序停止时,查看线程执行的最后一个方法是什么。

您可能在某个地方有内存泄漏,导致几个小时后锁定

如果您使用的是旧版本的JVM,它可能与http://bugs.sun.com/view_bug.do?bug_id=6822370有关。这是在6u18修复。见http://www.oracle.com/technetwork/java/javase/6u18 - 142093. - html

相关内容

  • 没有找到相关文章

最新更新