The invention relates to the field of software development. In order to solve the problem that the background of receiving JVM shutdown message can not finish the tasks that need to be executed before exiting JVM, a method of JVM safe exiting is proposed. The method includes: creating the object of class that implements SignalHandler interface, recording it as object 1, acquiring signal type, and taking signal type as the object of parameter initialization signal class, recording it as object 2; Object 2 calls the handle method of the Signal class. Object 1 and the signal type are passed into the handle method as parameters. In the handle method body, tasks that need to be continued when signals of the signal type are received are stored; shutdownhook threads are initialized and registered in the runtime environment; and in the handle method body, the method that exits the JVM is finally called. The invention is applicable to the field of JAVA software development.
【技术实现步骤摘要】
JVM安全退出的方法
本专利技术涉及JAVA软件开发领域,特别涉及一种JVM(JAVA虚拟机)安全退出的方法。
技术介绍
目前,JVM关闭的方式大致有如下几种:1)System.exit(0)方式:该方式由于直接写在代码中,不由人为控制是否关闭系统,只要逻辑流程代码运行到了当前步骤就会自动执行JVM关闭,该方式较为死板无法接收外部的关闭消息;2)仅通过获取kill命令的信号来关闭的方式:采用kill-9的命令来实现强制将进程杀掉,但这种方式很不友好,并没有给进行善后的方式,而kill-15也许会给目标进程一个清理善后工作的机会,但也有几率可能因为代码原因导致杀不死主进程;3)仅采用shutdownhook方式:shutdownhook函数在进程被kill的时候main函数就已经结束了,仅会运行shutdownHook所注册线程中run()方法的代码,而现在多数线程任务都是异步执行以加快应用的响应速度,对于通过线程或线程池进行的异步化,在JVM关闭时后台执行的异步线程的操作可能尚未完成。
技术实现思路
本专利技术所要解决的技术问题是:克服接到JVM关闭消息后后台无法执行 ...
【技术保护点】
1.JVM安全退出的方法,其特征在于,包括如下步骤:A、创建实现了SignalHandler接口的类的对象,记为对象一,获取信号类型,将信号类型作为参数传入signal类的构造函数来初始化signal类的对象,记为对象二;B、对象二调用Signal类的handle方法,对象一及信号类型作为参数传入handle方法中,在handle方法的方法体中存放当接收到所述信号类型的信号时仍需继续执行的任务;C、初始化shutdownhook线程并将shutdownhook线程注册到运行时环境中;D、在handle方法的方法体最后调用退出JVM的方法。
【技术特征摘要】
1.JVM安全退出的方法,其特征在于,包括如下步骤:A、创建实现了SignalHandler接口的类的对象,记为对象一,获取信号类型,将信号类型作为参数传入signal类的构造函数来初始化signal类的对象,记为对象二;B、对象二调用Signal类的handle方法,对象一及信号类型作为参数传入handle方法中,在handle方法的方法体中存放当接收到所述信号类型的信号时仍需继续执行的任务;C、初始化shutdownhook线程并将shutdownhook线程注册到运行时环境中;D、在handle方法的方法体最后调用退出JVM的方法。2.如权利要求1所述的J...
【专利技术属性】
技术研发人员:李怡虹,陈爱君,戴德军,
申请(专利权)人:四川爱创科技有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。