为什么在守护程序线程

时间:2017-11-21 14:48:14

标签: java python multithreading thread-safety

我正在阅读关于守护程序线程的SO post,答案底部的引用是:

  

但加入一个被妖魔化的线程最有可能开启   麻烦!

为什么它被认为是不好的做法?无论线程是否是守护进程,我都理解.join()块,但我不明白为什么它被认为是不好的做法。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

守护程序线程及其定义的相关性是,当程序完成但线程仍在运行时,它不会阻止JVM退出。

对于任何设计为在程序完成之前运行和结束的线程,作为守护程序线程是没用的。

从这一点可以得出结论,任何设计良好的守护程序线程都可以在程序运行时运行

因此,加入守护程序线程意味着连接将阻塞,直到守护程序线程结束,假设它是一个设计良好的守护程序线程,它永远不会。如果阻塞C:\> program1阻止执行更多有用的代码,那将永远不会发生,并且可能会阻止您的代码。