java 结束程序_如何优雅地停止Java进程
目录
理解停止Java进程的本质
我们知道,Java程序的运行需要一个运行时环境,即:JVM,启动Java进程即启动了一个JVM。
因此,所谓停止Java进程,本质上就是关闭JVM。
那么,哪些情况会导致JVM关闭呢?
应该如何正确地停止Java进程
通常来讲,停止一个进程只需要杀死进程即可。
但是,在某些情况下可能需要在JVM关闭之前执行一些数据保存或者资源释放的工作,此时就不能直接强制杀死Java进程。
对于正常关闭或异常关闭的几种情况,JVM关闭前,都会调用已注册的关闭钩子,基于这种机制,我们可以将扫尾的工作放在关闭钩子中,进而使我们的应用程序安全的退出。而且,基于平台通用性的考虑,更推荐应用程序使用System.exit(0)这种方式退出JVM。
对于强制关闭的几种情况:系统关机,操作系统会通知JVM进程等待关闭,一旦等待超时,系统会强制中止JVM进程;而kill -9、Runtime.halt()、断电、系统crash这些方式会直接无商量中止JVM进程,JVM完全没有执行扫尾工作的机会。
综上所述:
除非非常确定不需要在Java进程退出之前执行收尾的工作,否则强烈不建议使用kill -9这种简单暴力的方式强制停止Java进程(
java 结束程序_如何优雅地停止Java进程相关推荐
- vmx进程已提前退出_如何优雅地停止Java进程
目录 理解停止Java进程的本质 应该如何正确地停止Java进程如何注册关闭钩子使用关闭钩子的注意事项信号量机制 总结 理解停止Java进程的本质 我们知道,Java程序的运行需要一个运行时环境,即: ...
- 设计java application程序_下面哪些步骤是Java Application程序的建立及运行的步骤( )...
[判断题]运用定量模型进行优化控制是提高管理科学性的要求. [多选题]下列有关数组的声明中,正确的是( ) [填空题]是一种特殊的方法,它是在对象被创建时初始化对象的成员的方法. [判断题]数量化.模 ...
- java面向对象程序_面向对象编程基础(java)
面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...
- java俄罗斯方块程序_使用JAVA编写的俄罗斯方块程序, 具有非常全面的功能.
Lastsong-Tetris 使用JAVA编写的俄罗斯方块程序, 具有非常全面的功能. 游戏基本规则: 1.打开游戏窗口后, 点击开始按钮进行游戏; 2.每消一行就会增加10分和1消行数,当分数累计 ...
- 如何优雅地停止Java进程
目录 理解停止Java进程的本质 应该如何正确地停止Java进程 如何注册关闭钩子 使用关闭钩子的注意事项 信号量机制 总结 理解停止Java进程的本质 我们知道,Java程序的运行需要一个运行时环境 ...
- linux启动java jar文件_推荐:Linux启动Java程序jar包Shell脚本
#!/bin/sh# 该脚本为Linux下启动java程序的脚本## author: luandy# date: 2021/1/15## 特别注意:# 该脚本使用系统kill命令来强制终止指定的jav ...
- java可用于开发两类程序_此内容适合初学者java基础知识 第一章
(一)Java 可用来生成两类程序:应用程序(Application). 小应用程序( Applet ) . (二)Java 既是一种解释执行的语言,也是一种编译执行的语言 (三)Java技术体系 1 ...
- 易语言取java路径模块_易语言API模块制作进程取程序路径
易语言API模块制作进程取程序路径,提高进程的PID获取程序的所在路径. 进程_取程序路径 1.CreateToolhelp32Snapshot 快照句柄 = CreateToolhelp32Snap ...
- 用uml设计java应用程序_用UML设计Java应用程序之需求分析
本节向大家介绍一下如何用UML设计Java应用程序, 这里就以图书馆借阅和预定图书和杂志的应用程序为例向大家讲解,主要有需求分析和域分析等内容,相信本节的学习一定会让你对UML设计有新的理解. 用UM ...
最新文章
- 利用BP神经网络教计算机识别语音特征信号(代码部分SS)
- 用于数字成像的双三次插值技术​
- 最新28个很棒的 jQuery 教程
- (*长期更新)软考网络工程师学习笔记——Section 16 磁盘存储技术和网络规划设计
- Metasploit入门用法(主动攻击)
- 绝地求生信号枪只能在服务器吗,绝地求生信号枪怎么用?信号枪刷新点及用法详解...
- 邻接矩阵的深度优先遍历
- mysql 转型_MySQL的未来在哪?
- camera android 黑屏,Android Camera.startPreview()启动未报错,但SurfaceView无画面输出
- 想学习C语言,学习路线是什么?
- Android学习笔记(十一)——从意图返回结果
- CSDN博主排名更新,看看原来的前1000名博主现在的排名如何
- 深入浅出的mysql第三版和第二版的区别_深入浅出mysql和高性能mysql哪本好
- 【游戏开发】游戏开发书籍汇总
- 玩转 ESP32 + Arduino (二十二) SIM800L上传数据到阿里IOT(温湿度和LBS)(NTP对时)
- 搜狗微信添加搜索工具爬虫
- MySQL5.7 Group Replication (MGR)
- 【尚硅谷_数据结构与算法】一、数据结构与算法概述
- OneDrive免费5T云盘空间
- HDU 4699 对顶栈