作为我们基于 linux 的 java 应用程序执行的一部分,main() 创建线程。
我们希望保护我们的应用程序,以便如果 main() 由于某些不可预见的情况而退出,所有线程都将被杀死并且不会像僵尸一样停留。
问题 - 主线程能否以其他方式死亡,而不是干净退出或异常如果我们在 main() 中捕获任何 RuntimeException,并等待所有线程完成,我们安全吗?根本没有僵尸的问题?
- 如果有这种可能,其他线程如何检测我们的main()线程是否死了,
- 如果我们找到了一种检测方法,我们如何终止 main 创建的所有线程。
应用程序内部的解决方案(在 java 代码中实现)或应用程序外部的解决方案(shell 脚本)或两者的混合,什么都可以。
想法?