multithreading - 终止程序并关闭所有资源
问题描述
我有一个程序,它在内部启动多个线程并管理服务器和客户端套接字。
是否有必要在程序终止之前显式关闭所有套接字(在关闭挂钩中)并中断所有子进程?
解决方案
当您调用时System.exit()
,或者可能使用其他执行 a 的工具时,kill the-jvm-pid
这将立即结束所有活动。套接字将被关闭等等。因此,从技术上讲,您应该自动“关闭所有事物”。
但是:问问自己这是否真的是你想要的。
在大多数现实世界的应用程序中,有序关闭与有序启动一样重要。您不只是走进您的计算中心并从电源插座上拔下电源插头。
含义:不仅仅是“杀死”您的应用程序,还应考虑该服务是否具有您可以调用的“关闭”功能,以便以有意义的方式结束正在进行的活动。这不是所有类型的应用程序都需要的,但它确实取决于上下文。
推荐阅读
- amazon-s3 - S3 DeleteObject 策略未添加且 PHP deleteObject SDK 不起作用
- python - 具有十进制数据类型的 Pandas `read_sql_query`
- javascript - javascript如何对单个对象数组进行分组和组合
- java - 在使用 JIB 完成的图像中将参数传递给我的应用程序
- reactjs - × TypeError:无法解构“steps”的属性“salaryanswer”,因为它未定义。反应式
- xml - 哪个 nosql 架构适用于 XML 文件
- objective-c - vImageConvert_422CbYpCrYp8ToARGB8888 转换缺少红色和黑色/alpha - Cocoa
- angular - 产品详细信息显示 NaN 而不是数量
- python-3.x - 如何使用 selenium python 向下滚动谷歌工作页面
- sql - 在多个表中显示 SQL 约束