为Java应用程序添加退出事件响应-Java基础-Java-编程开发

基于 MATLAB 的综合能源系统建模:全面解析与案例应用  本文详细介绍了基于 MATLAB 的综合能源系统建模相关知识,包括 MATLAB 在综合能源建模中的优势、综合能源系统各组件和网络的建模方法,并通过园区综合能源系统的案例展示了从建模到优化调度求解以及结果分析的全过程。在当今全球能源格局深刻变革的背景下,综合能源系统(Integrated Energy System,IES)作为一种创新的能源供应体系,整合了多种能源形式,如电力、热力、燃气等,以实现能源的高效生产、传输、分配和利用。需要考虑燃气的压力、流量特性以及管道的阻力特性等。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>   一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。

   如:下列典型代码

   package untitled14;

   /**
   * This application is to demo how an applcation end
   */
   public class Test {
   public Test() {}
   public static void main(String[] args) {
   Test test1 = new Test();
   //.................
   System.out.println("hello world");
   //Do something before system exit
   System.exit(0);//也可以不写这句代码,让程序自然结束。
   }
   }

   对于简单的应用系统,我们直接可以在System.exit(0)代码执行前,添加需要在应用程序退出前需要完成的工作,如:关闭网络连接,关闭数据库连接等。

   然而,对于比较复杂的多线程应用,线程运行的状态较复杂,我们就很难预料程序何时结束,如何能在应用程序结束事件到来时,处理我们要做的工作呢?这就用到了Java对应用程序的退出的事件出处理机制。

   对当前应用程序对象的获得,Java通过Runtime静态方法:Runtime.getRuntime()通过Runtime的 void addShutdownHook(Thread hook) 法向Java虚拟机注册一个shutdown钩子事件,这样一旦程序结束事件到来时,就运行线程hook,我们在实际应用时候,只要将程序需要完成之前做的一些工作直接通过线程hook来完成。具体演示代码如下:

 

  /*******************************************************
   本程序仅演示,如何在Java应用程序中添加系统退出事件处理机制
   *******************************************************/
   package untitled14;
   import java.util.*;
   import java.io.*;

   /**
   * This application is used to demo how to hook the event of an application
   */
   public class Untitled1 {

   public Untitled1() {
   doShutDownWork();
   }

   /*****************************************************
   * This is the right work that will do before the system shutdown
   * 这里为了演示,为应用程序的退出增加了一个事件处理,
   * 当应用程序退出时候,将程序退出的日期写入 d:/t.log文件
   ****************************************************/
   private void doShutDownWork() {
   Runtime.getRuntime().addShutdownHook(new Thread() {

    public void run() {
     try {
      FileWriter fw = new FileWriter("d://t.log");
      System.out.println("Im going to end");
      fw.write("the application ended! " (new Date()).toString());
      fw.close();
     }
     catch (IOException ex) {
     }

    }
   });
   }

   /****************************************************
   * 这是程序的入口,仅为演示,方法中的代码无关紧要
   ***************************************************/

   public static void main(String[] args) {
   Untitled1 untitled11 = new Untitled1();
   long s = System.currentTimeMillis();
   for (int i = 0; i < 1000000000; i ) {
    //在这里增添您需要处理代码
   }
   long se = System.currentTimeMillis();
   System.out.println(se - s);
   }
   }

在上述程序中,我们可以看到通过在程序中增加Runtime.getRuntime().addShutdownHook(new Thread()) 事件监听,捕获系统退出消息到来,然后,执行我们所需要完成工作,从而使我们的程序更健壮!

  • 2005年5月12日
  • 2005年5月10日
  • 2005年3月30日
  • 2005年3月30日
  • 2005年3月30日
  • 2005年3月30日
  • 2005年3月30日
  • 2005年3月29日
  • 2005年3月29日
  • 2005年3月29日
  • 2005年3月29日
  • 2005年3月28日

YOLOv8推理程序 YOLOv8单独推理,有时候我们自定义的模块算子无法正常转换为其他框架,而且需要做成应用,因此需要一个单独推理的程序,返回的是识别后的照片还有各个类别及其对应数量。文章最后给出Flask封装为Server以及调用的实例还有Client请求代码,支持几十路多线程并发,只需加载一次模型,后边推理即可。 阅读详情

相关推荐

一图文带您认识磁编码器

磁编码器是以磁电原理技术生产的编码器。 磁编码器工作原理: 当电流通过一个位于磁场中的导体的时候,磁场会对导体中的电子产生一个垂直于电子运动方向上的的作用力,从而在垂直于导体与磁感线的方向上产生电势差。 如果让施加在这个导体上的磁场以电流流经路径为轴线,按照上图箭头所示的方向旋转,那么这个霍尔电势差就会因为磁场与导体之间角度的改变而发生变化,而这个电势差的变化趋势,与之前一文中次级线圈旋转时的输出电压一样,是一条正弦曲线。因此,基于这个通电导体两侧的电压,就可以反推计算出磁场旋转的角度了。 .

encoder_yang的博客 2万+

为您的Java应用程序添加退出事件处理

一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。如:下列典型代码package untitled14;/** *//** * This application is to demo ho

龙的天空 1万+

电压比较器---滞回比较器(施密特触发器)

当输入电压从小电压开始增加,当其大于VT+时,电压比较器输出低电平,此时阈值电压变成下门限电压(VT-);当输入电压从大电压开始减小,当其小于VT-时,电压比较器输出高电平,此时阈值电压变成上门限电压(VT+);只有当第一次超过上门限电压或者下门限电压值,电压比较器的输出才会翻转变化;Uo为比较输出电压,有两种电压状态VoH(高电平)和VoL(低电平);当Uo输出为高时,电压比较器的阈值电压是上门限电压(VT+);当Uo输出为低时,电压比较器的阈值电压是下门限电压(VT-);Vref为比较参考电压;

weixin_69076249的博客 1万+

JAVA中事件处理的总结

1. 事件在JAVA SE的桌面开发是经常用到的,没有事件的组件就像人没有生命一样。有事件必有事件源,要想完成某一功能必须有事件的处理方法,组件和事件相互配合、相互协调才能完成我们想要的结果。事件是一个对象,是对一个事件类型的描述;产生事件的组件我们通常叫做事件源;要想完成某一功能还需有事件处理的方法。 2. 事件处理的主要步骤:   1. 首先产生监听器,监听是否有事件源的产生。 2.

hdikdfdkfdl的专栏 1096

OpenHarmony 4.1/5.0 Beta上手:如何用ArkUI在非华为设备上开发你的第一个“鸿蒙”应用

本文详细介绍了如何在非华为设备上使用ArkUI开发OpenHarmony应用,涵盖从设备选型、环境搭建到应用部署的全流程。通过实战案例展示ArkTS语言在开源鸿蒙生态中的应用,帮助开发者突破设备限制,构建跨平台鸿蒙应用。

weixin_33704234的博客 368

强化学习-动态规划

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略。

qq_45481856的博客 2115

为Java应用程序添加退出事件响应

为Java应用程序添加退出事件响应[@more@]  一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或Sy...

cuanku6549的博客 174

手把手教你用C语言给STM32写一个Modbus RTU从机库(含完整项目源码)

在工业自动化领域,Modbus RTU协议因其简单可靠的特点,成为RS485总线通信的事实标准。对于嵌入式开发者而言,为STM32等微控制器实现一个高效的Modbus RTU从机协议栈,是开发智能传感器、执行器等设备的必备技能。Modbus RTU从机的核心是一个状态机,需要处理帧接收、CRC校验、功能码解析和响应生成等环节。工业现场总会遇到意想不到的干扰情况,一个健壮的协议栈应该能够优雅地处理各种异常场景,而不是简单地崩溃或死锁。工业现场环境复杂,协议栈必须具备完善的异常处理机制。

weixin_30561425的博客 516

java事件处理

一、Java的事件处理机制二、事件处理流程1、给事件源对象注册监听者    事件监听者是在事件发生时要对事件进行处理的对象。AWT定义了各种类型的事件,每一种事件有相应的事件监听者接口 ,在接口中描述了处理相应事件应该实现的基本行为。若事件类名为XxxEvent,则事件监听接口的命名为XxxListener,给部件注册监听者的方法为addXxxListener(XxxListener a)。   ...

鹏鹏的博客 2万+

服务器被矿工入侵记录

一次服务器被矿工入驻的处理记录

王瑞的技术专栏 1334

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1033

Java应用程序 退出事件响应

最近一直在跟随着师兄做监控的部分,之前在学校只是做过几个curd类型的小项目,因此在面对此次任务的时候既兴奋又紧张。兴奋的是我开始做高级一点的东西了,紧张的是我有太多的未知。首先开始阅读监控部分的源代码,其中多次看到addHookShutDown()之类的方法,之前没有接触于是索性学习了一番。 一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统...

JAVAZHICHIZHE的专栏 1023

人工智能---什么是Transformer?

Transformer是一种强大的神经网络架构,最初由Google的研究人员在论文《Attention is All You Need》中提出,用于自然语言处理任务,特别是在机器翻译方面取得了巨大成功。Transformer的核心思想是完全基于自注意力机制(self-attention mechanism)来实现序列到序列(sequence-to-sequence)的学习。它在自然语言处理(NLP)和其他序列到序列任务中表现出色,逐渐成为该领域的主流模型。近些年也逐渐在自动驾驶领域有所应用。

智能汽车人的博客 3955

Java应用程序添加退出事件响应

一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。  如:下列典型代码package untitled14;/*** This application is to demo how an applca...

iteye_5095的博客 257

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java应用程序添加退出事件响应 (关闭虚拟机而不是程序-system.exit)

<br />为Java应用程序添加退出事件响应  发布时间:2006.03.09 00:48     来源:优快云    作者:<br /> <br />  一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。 <br /><br />  如:下列典型代码<br /><br />package untitled

tangwing的专栏 3741

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java Swing为下拉菜单添加事件响应

Java Swing 编程 如何为下拉菜单添加 事件响应

apy29的博客 586

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

编程语言java常见事件响应方法实例汇总

编程语言java常见事件响应方法实例汇总 本文实例汇总了java中常见的事件响应方法,包括容器类监听、监听器类、AbstractAction、反射等。以方便大家参考。具体方法如下: 首先,在Java图形用户界面中,处理事件时所必须的步骤是: 1、创建接受响应的组件(控件) 2、实现相关事件监听接口 3、注册事件源的动作监听器 4、事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应。 一、容器类监听 效果:单击窗体中的三个按钮,实现相应的相应时间。 import java.aw

1293

JAVA几种退出窗口的方式

java初学的时候常常忘记加退出窗口的事件响应,导致。。。一口气开了四五个frame,疯狂点右上角的X也关不掉。。为了避免这种情况出现,我们必须要加退出窗口的事件和事件监听器,如下所示: 1.Applet 虽然差不多被淘汰了,但它是自己带有默认的WindowCloseOperation的,所以你能叉掉applet。 2.Frame和JFrame SomeClass a = new Some...

一条菜狗的博客 1万+

java 下拉框触发事件_JAVA给下拉菜单添加事件响应 | 学步园

首先内隐类的位置,应该放在为它生成对象之前(即放在MyListener s = new MyListener)之前。使用内隐类的典型做法是,外围的class有一个函数,可以传回一个reference指向这个内部类。你正好用到了这点,一个不错的尝试。 ^_^有两个问题,不知道你考虑过没有,首先e.getSource()这个方法返回的类型是一个Object,而非字符串,“e.getSource()==...

weixin_35816790的博客 718

[编程题] Java基础编程练习题(二)

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,public void actionPerformed(ActionEvent e){ //按钮事件响应方法。

2401_86984462的博客 1201

java事件大全_java常见事件响应方法实例汇总

本文实例汇总了java中常见的事件响应方法,包括容器类监听、监听器类、AbstractAction、反射等。以方便大家参考。具体方法如下:首先,在Java图形用户界面中,处理事件时所必须的步骤是:1、创建接受响应的组件(控件)2、实现相关事件监听接口3、注册事件源的动作监听器4、事件触发时的事件处理相应的可以通过以下的集中方式来作出事件响应。一、容器类监听效果:单击窗体中的三个按钮,实现相应的相应...

weixin_36166558的博客 824

JAVA给下拉菜单添加事件响应

首先内隐类的位置,应该放在为它生成对象之前(即放在MyListener s = new MyListener)之前。 使用内隐类的典型做法是,外围的class有一个函数,可以传回一个reference指向这个内部类。你正好用到了这点,一个不错的尝试。 ^_^ 有两个问题,不知道你考虑过没有,首先e.getSource()这个方法返回的类型是一个Object,而非字符串,“e.getSource

xiaohang20103的专栏 1万+

java 事件响应

<br />import javax.microedition.midlet.MIDlet;<br />import javax.microedition.midlet.MIDletStateChangeException;<br />import javax.microedition.lcdui.Command;<br />import javax.microedition.lcdui.CommandListener;<br />import javax.microedition.lcdui.Displa

我还不懂,所以在学 1051
上一篇: Java服务器端编程安全必读-Java基础-Java-编程开发
下一篇: 论全世界所有程序员都会犯的错误-Java基础-Java-编程开发
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值