zoukankan      html  css  js  c++  java
  • RunTime.getRunTime().addShutdownHook的用法

    今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下:

          Runtime.getRuntime().addShutdownHook(shutdownHook);

       这个方法的含义说明:

           这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。

    测试案例:

    package com.spring.sxf.study.springtradedao.java.hook;
    
    /**
     * 打印结果:
     * JVM开始运行
     * JVM开始运行结束
     * ==钩子函数执行开始==
     * 服务名字:远程服务
     * 服务代码:abc
     * ==钩子函数执行结束==
     */
    public class HookTest {
    
        private static Server server;
    
        public static void main(String[] args) {
            //JVM实例开始运行
            System.out.println("JVM开始运行");
            server=new Server("远程服务","abc");
            //添加钩子函数
            Runtime.getRuntime().addShutdownHook(new Thread(){
                @Override
                public void run() {
                    System.out.println("==钩子函数执行开始==");
                    System.out.println("服务名字:"+server.getName());
                    System.out.println("服务代码:"+server.getServer());
                    System.out.println("==钩子函数执行结束==");
                }
            });
            //JVM实例关闭
            System.out.println("JVM开始运行结束");
        }
    
    }
    
    /**
     * 测试服务
     */
    class Server{
    
        private String name;
        private String server;
    
        public Server(String name, String server) {
            this.name = name;
            this.server = server;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getServer() {
            return server;
        }
    
        public void setServer(String server) {
            this.server = server;
        }
    }
    View Code
  • 相关阅读:
    Python测试开发Tkinter-----(Button--按钮)
    Python测试开发Tkinter------(Frame--框架)
    Python测试开发Tkinter-----(Tkinter--创建顶层窗口及Label)
    python2.7 Scripts环境变量配置 requests bs4 selenium安装方法
    重要知识点:内网系列
    重点知识:系统区分法,响应码,client-ip限制,抓https包的方法
    重点知识:MD5
    01渗透测试基础
    渗透测试之信息收集篇
    sqlmap安装与使用基础
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/12012912.html
Copyright © 2011-2022 走看看