2024-05-18 09:09:04 发布
网友
我在读这篇关于守护进程线程的SO post,答案底部的引号是:
But joining a demonized thread opens most likely a whole can of trouble!
为什么它被认为是不好的做法?我理解.join()块,不管线程是否是守护程序,但我不明白为什么它被认为是坏的做法。有人能解释一下吗?在
.join()
守护进程线程及其定义的相关性在于,当程序完成但线程仍在运行时,它不会阻止JVM退出。在
对于任何设计为在程序完成之前运行和结束的线程,作为守护程序线程是没有用的。在
由此可以得出这样的结论:只要程序运行,任何设计良好的守护程序线程都可以运行。在
因此,在守护进程线程上连接意味着连接将阻塞直到守护进程线程结束,假设它是一个设计良好的守护线程,则永远不会。如果这个阻塞join()阻止了更多有用的代码的执行,那么这种情况永远不会发生,而且很可能您的代码将被卡住。在
join()
守护进程线程及其定义的相关性在于,当程序完成但线程仍在运行时,它不会阻止JVM退出。在
对于任何设计为在程序完成之前运行和结束的线程,作为守护程序线程是没有用的。在
由此可以得出这样的结论:只要程序运行,任何设计良好的守护程序线程都可以运行。在
因此,在守护进程线程上连接意味着连接将阻塞直到守护进程线程结束,假设它是一个设计良好的守护线程,则永远不会。如果这个阻塞
join()
阻止了更多有用的代码的执行,那么这种情况永远不会发生,而且很可能您的代码将被卡住。在相关问题 更多 >
编程相关推荐