如果一个线程创建一个守护进程线程,我可以依赖这样一个事实:当父进退出run方法时,儿子也会终止吗?
答案 0 :(得分:9)
不 - 线程是独立的。没有任何一个线程“拥有”另一个线程并强制终止。
如果您确实询问应用程序中的所有非守护程序线程何时死亡,您可以依赖该进程死亡:是的,您可以。但那可以依赖所有。
特别是,如果有两个非守护程序线程,其中每个都创建了一个守护程序线程,并且非守护程序线程的一个终止,则剩余的三个线程将继续运行。
答案 1 :(得分:1)
我相信守护程序线程绑定到JVM而不是创建线程。
答案 2 :(得分:0)
自: http://journals.ecs.soton.ac.uk/java/tutorial/java/threads/daemon.html
当进程中唯一剩余的线程是守护程序线程时,解释器退出。这是有道理的,因为当只剩下守护程序线程时,没有其他线程,守护程序线程可以为其提供服务。