为什么在守护线程上调用 Join 不好

4 python java multithreading thread-safety

我正在阅读这篇关于守护线程的帖子,答案底部的引用是:

但是加入一个被妖魔化的线程很可能会带来一大堆麻烦!

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

bow*_*ore 5

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

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

由此可以得出合乎逻辑的结论:任何设计良好的守护线程都被设计为与程序运行时一样运行

因此,在守护线程上加入意味着加入将阻塞,直到守护线程结束,假设它是一个设计良好的守护线程,则永远不会。如果这种阻塞join()阻止执行进一步有用的代码,那么这种情况永远不会发生,并且可能您的代码将被卡住。