作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在读这个SO post关于守护线程,答案底部的引述是:
But joining a demonized thread opens most likely a whole can of trouble!
为什么它被认为是不好的做法?我理解 .join()
block ,无论线程是否是守护进程,但我不明白为什么它被认为是不好的做法。谁能解释一下?
最佳答案
守护线程及其定义的相关性在于,当程序完成但线程仍在运行时,它不会阻止 JVM 退出。
对于任何线程,设计为在程序完成之前运行和结束,成为守护线程是没有用的。
据此可以合理地得出结论:任何设计良好的守护线程都被设计为只要程序运行就运行。
因此,在守护线程上加入意味着加入将阻塞,直到守护线程结束,假设它是一个设计良好的守护线程,永远不会。如果此阻塞 join()
阻止执行更多有用的代码,那将永远不会发生,而且您的代码可能会被卡住。
关于java - 为什么在守护线程上调用 Join 不好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47415918/
我是一名优秀的程序员,十分优秀!