为什么需要在java中使用非守护进程线程?

use*_*818 4 java multithreading daemon

似乎守护程序线程总是更好 - 因为它们将在应用程序主线程退出后由VM停止.除了无法中断某些操作的情况之外,还有其他原因可以使用非守护程序线程吗?谢谢.

Tom*_*icz 6

在编写服务器(例如servlet容器)时,您main所要做的就是引导和启动HTTP侦听器线程,接受线程,文件系统扫描线程,RMI线程等.

完成引导程序后,main不再需要,因为一切都是异步发生的.在这种情况下,所有必需的线程都是非守护进程,因为它们必须经过该main方法.

即使在Swing(桌面编程)中,唯一的要求main是初始化主窗口(JFrame).其余的发生在Swing监听器线程(EDT)和各种后台线程中.