Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 线程设置dameon(true)挂起Tomcat关机_Java_Multithreading_Tomcat - Fatal编程技术网

Java 线程设置dameon(true)挂起Tomcat关机

Java 线程设置dameon(true)挂起Tomcat关机,java,multithreading,tomcat,Java,Multithreading,Tomcat,最近我修复了Tomcat关机中的一个错误。这是因为Tomcat试图关闭自己时,有一些线程挂在那里 我所做的与此类似: 我在其他方面也发现了类似的问题: 有人能解释一下使用setDaemon的利弊吗?setDaemon(true)将特定线程标记为守护进程。守护进程线程是一种特殊的线程—JVM不必等到它们完成后才能关闭(通过finishingmain()method) 您可能希望守护进程线程执行非关键清理工作,例如收集一些统计信息 很难说它的优点和缺点是什么,但我尽力解释了它的想法和可能的用法。

最近我修复了Tomcat关机中的一个错误。这是因为Tomcat试图关闭自己时,有一些线程挂在那里

我所做的与此类似:

我在其他方面也发现了类似的问题:

有人能解释一下使用setDaemon的利弊吗?

setDaemon(true)将特定线程标记为守护进程。守护进程线程是一种特殊的线程—JVM不必等到它们完成后才能关闭(通过finishing
main()
method)

您可能希望守护进程线程执行非关键清理工作,例如收集一些统计信息

很难说它的优点和缺点是什么,但我尽力解释了它的想法和可能的用法。

setDaemon(true)
将特定线程标记为守护进程。守护进程线程是一种特殊的线程—JVM不必等到它们完成后才能关闭(通过finishing
main()
method)

您可能希望守护进程线程执行非关键清理工作,例如收集一些统计信息

很难说它的优点和缺点是什么,但我尽力解释了它的想法和可能的用法。

setDaemon(true)
将特定线程标记为守护进程。守护进程线程是一种特殊的线程—JVM不必等到它们完成后才能关闭(通过finishing
main()
method)

您可能希望守护进程线程执行非关键清理工作,例如收集一些统计信息

很难说它的优点和缺点是什么,但我尽力解释了它的想法和可能的用法。

setDaemon(true)
将特定线程标记为守护进程。守护进程线程是一种特殊的线程—JVM不必等到它们完成后才能关闭(通过finishing
main()
method)

您可能希望守护进程线程执行非关键清理工作,例如收集一些统计信息


很难说它的优点和缺点是什么,但我尽力解释了它的想法和可能的用法。

如果有人发现他们的Tomcat关机被挂起了。大多数情况下,进程将被终止,类似的结果是在开始时设置为dameon线程。。。这个bug在我们的产品中已经存在了2年:(如果有人发现他们的Tomcat关闭被挂起。大多数情况下,进程将被终止,类似的结果是在开始时设置为dameon线程……这个bug在我们的产品中存在了2年:(如果有人发现他们的Tomcat关机被挂起。大多数情况下,进程将被终止,类似于开始时设置为dameon线程的结果…此错误在我们的产品中存在了2年:(如果有人发现他们的Tomcat关机被挂起。大多数情况下,进程将被终止,类似于开始时设置为dameon线程的结果…此错误在我们的产品中存在了2年:(
public Thread newThread(Runnable r) {
    Thread t = new Thread(r, "RxComputationThreadPool-" + counter.incrementAndGet());
    t.setDaemon(true);
    return t;
}