我正在阅读关于守护程序线程的SO post,答案底部的引用是:
但加入一个被妖魔化的线程最有可能开启 麻烦!
为什么它被认为是不好的做法?无论线程是否是守护进程,我都理解.join()
块,但我不明白为什么它被认为是不好的做法。有人可以解释一下吗?
答案 0 :(得分:2)
守护程序线程及其定义的相关性是,当程序完成但线程仍在运行时,它不会阻止JVM退出。
对于任何设计为在程序完成之前运行和结束的线程,作为守护程序线程是没用的。
从这一点可以得出结论,任何设计良好的守护程序线程都可以在程序运行时运行。
因此,加入守护程序线程意味着连接将阻塞,直到守护程序线程结束,假设它是一个设计良好的守护程序线程,它永远不会。如果阻塞C:\> program1
阻止执行更多有用的代码,那将永远不会发生,并且可能会阻止您的代码。