ExecutorService挂起

时间:2014-06-11 17:16:17

标签: java threadpool executorservice

我正面临一些执行者服务被绞死的问题。

我想测试一个可运行线程之一被卡住的场景,因为它涉及很多系统并最终导致执行器挂起。

为此,我创建了一个测试场景,我通过执行器服务创建了5个线程,并在其中一个线程中编写了一个无限循环。我看到代码被卡在该循环中而没有实现主线程的shutdown / shoutDownNow方法。什么是主线程执行的优先级。在这种情况下我们如何强制关闭?

1 个答案:

答案 0 :(得分:1)

在任何可运行任务仍在进行之前,我们无法强制关闭(非守护程序线程)。您可以尝试使用大型迭代循环并查看。例如

ExecutorService e = Executors.newCachedThreadPool();
e.execute(new Runnable() {

@Override
public void run() {
    for(int i =0 ; i< 5000; i++){
    System.out.println("run me in a different thread" + i);
    }

}
});
e.shutdown();