【发布时间】:2012-09-14 13:30:54
【问题描述】:
正如它在 javadoc 中所说的那样
池中的线程将存在 直到被
ExecutorService#shutdown()明确关闭
如果我在 Tomcat 上有一个 Web 应用程序。在启动时它会创建一个固定的线程池。我也调查过
public static void main(String ... strings) {
ExecutorService s = Executors.newFixedThreadPool(2);
s.submit(new Runnable() {
public void run() {
System.out.println("zzz");
}
});
}
在我将它们提交给 ExecutorService 之前,上面示例中的线程不存在。当main 方法结束时,我在任务管理器(win 7 os)的进程列表中看到一个javaw.exe。所以我假设运行该示例的 jvm 实例仍然存在。当我添加s.shutdown() - 进程列表中没有任何java进程。
问题一:当tomcat由于一些错误突然停止时,java进程是否会在内存中挂起(如果之前有一些任务被提交到上面提到的线程池中);
问题 2:如果对上一个问题的回答是肯定的,是否有一些方法可以使池中的线程成为守护进程,或者是否有一些方法可以处理此类 tomcat/myapp 停止调用 @ 987654326@
【问题讨论】:
标签: java multithreading tomcat