Multithreading 关闭所有资源终止程序
我有一个程序,它在内部启动几个线程并管理服务器和客户端套接字Multithreading 关闭所有资源终止程序,multithreading,sockets,Multithreading,Sockets,我有一个程序,它在内部启动几个线程并管理服务器和客户端套接字 是否有必要在程序终止之前(在shutdown hook中)明确关闭所有套接字并中断所有子进程?当您调用System.exit()时,或者可能使用其他工具来杀死jvm pid,然后将立即结束所有活动。插座将被关闭,所有这些。所以,从技术上讲,你应该自动“关闭所有东西” 但是:问问自己,这是否真的是你想要的 在大多数实际应用中,有序关闭与有序启动同样重要。你不只是走进你的计算中心,从电源插座上拔下电源插头 意义:而不是仅仅“杀死”你的应用
是否有必要在程序终止之前(在shutdown hook中)明确关闭所有套接字并中断所有子进程?当您调用
System.exit()
时,或者可能使用其他工具来杀死jvm pid,然后将立即结束所有活动。插座将被关闭,所有这些。所以,从技术上讲,你应该自动“关闭所有东西”
但是:问问自己,这是否真的是你想要的
在大多数实际应用中,有序关闭与有序启动同样重要。你不只是走进你的计算中心,从电源插座上拔下电源插头
意义:而不是仅仅“杀死”你的应用程序,考虑是否有意义的是,这个服务有一个你可以调用的“关机”功能,因此正在进行的活动以有意义的方式结束。这并不是所有类型的应用程序都需要的,但它实际上取决于上下文。
关于shutdown hook的使用,我认为需要考虑的是,如果您在关机期间需要坚持某些操作,或者您希望程序在关机期间确保/执行某些其他操作,那么值得考虑;否则,当程序结束时,套接字将被释放