我有一个程序,该程序在内部启动多个线程并管理服务器和客户端套接字。
是否有必要在程序终止之前(在关闭挂钩中)显式关闭所有套接字,并且还要中断所有子进程?
答案 0 :(得分:1)
调用System.exit()
或使用其他执行kill the-jvm-pid
的工具时,将立即结束所有活动。套接字将全部关闭。因此,从技术上讲,您应该自动将“所有事物都关闭”。
但是:问问自己这是否真的是您想要的?
在大多数现实世界应用程序中,有序关机与有序启动同样重要。您不仅要走进计算中心并从电源插座上拔下电源插头。
含义:不仅仅是考虑“杀死”您的应用程序,还应考虑该服务具有您可以调用的“关闭”功能是否有意义,从而使正在进行的活动以有意义的方式结束。并不是所有类型的应用程序都需要它,但这实际上取决于上下文。