最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Kill指令停掉Java程序的問題

 更新時間:2021年10月21日 11:48:56   作者:Jack魏  
這篇文章主要介紹了Kill指令停掉Java程序的思考,主要探究kill指令和java的關(guān)閉鉤子的問題,需要的朋友可以參考下

今天同事問我,一個jar包,啟動起來,端口正常,而且防火墻全都關(guān)閉了,為什么前臺訪問出錯?
我第一反應(yīng)是啟動是否正常,然后就是阿里云安全組有沒有配置對應(yīng)的端口。
后來發(fā)現(xiàn)自己也不對,是因為kill -9的問題,所以本文就是來探究kill指令和java的關(guān)閉鉤子

1. Java的原生關(guān)閉鉤子

直接使用這個,不管使用什么方式停止程序,都不會調(diào)用關(guān)閉鉤子,
不知道自己哪里出錯,希望大佬指正。

public class RunTest {
    public static void main(String[] args) throws InterruptedException {
       int i = 1;
        while (i<10000) {
            System.out.println(i);
            i++;
            Thread.sleep(1000);
        }

        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("I'll be back");
            }
        }));
    }
}

1.1 使用IDE關(guān)閉調(diào)試

可以看到,我用IDE點擊運行,然后關(guān)閉,就直接停止了,沒有調(diào)用關(guān)閉鉤子。

在這里插入圖片描述

1.2 使用kill -15 指令

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

1.3 使用kill -9 指令

在這里插入圖片描述

在這里插入圖片描述

終于有位大佬提出了質(zhì)疑,
說需要把關(guān)閉鉤子注冊方法寫到while循環(huán)上面,
這樣才能注冊成功,于是我就試了一下,
事就這樣成了。
感謝 黙塵 博主的指導。

修改后代碼:

public class RunTest {
    public static void main(String[] args) throws InterruptedException {

       Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("I'll be back");
            }
        }));
        
       int i = 1;
        while (i<10000) {
            System.out.println(i);
            i++;
            Thread.sleep(1000);
        }
    }
}

這時候用IDE測試,用debug模式停止是正常的:

在這里插入圖片描述

在linux環(huán)境,使用kill -15:

在這里插入圖片描述

在linux環(huán)境,使用kill -9:

在這里插入圖片描述

2. SpringBoot關(guān)閉鉤子

測試jar包下載地址:
關(guān)閉鉤子測試jar包

import org.springframework.beans.factory.DisposableBean;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class ApplicationListens implements CommandLineRunner, DisposableBean {
    @Override
    public void destroy() throws Exception {
        System.out.println("銷毀程序------");
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("運行程序------");
    }
}

2.1 使用IDE關(guān)閉

在這里插入圖片描述

2.2 使用kill -15 指令

在這里插入圖片描述

2.3 使用kill -9 指令

在這里插入圖片描述

所以,如果想優(yōu)雅的關(guān)閉應(yīng)用,需要用kill -15
但是有時候我們會遇到關(guān)閉掉的情況,
那只能用kill -9

參考文獻:
SpringBoot-監(jiān)聽應(yīng)用啟動與關(guān)閉的回調(diào)鉤子

到此這篇關(guān)于Kill指令停掉Java程序的思考的文章就介紹到這了,更多相關(guān)Kill指令停掉Java程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC文件上傳中要解決的問題大匯總

    SpringMVC文件上傳中要解決的問題大匯總

    這篇文章主要介紹了SpringMVC文件上傳中要解決的問題,主要有中文文件名編碼問題,文件位置存儲問題以及文件名沖突問題等等,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Java中的TreeMap底層源碼分析

    Java中的TreeMap底層源碼分析

    這篇文章主要介紹了Java中的TreeMap底層源碼分析,TreeMap與Hashmap、LinkedHashMap不同,他的底層不再是數(shù)組,而是一顆紅黑樹,在插入、刪除或者替換元素時,TreeMap能按照事先約定的順序來對key進行排序和迭代查詢,需要的朋友可以參考下
    2023-12-12
  • Java讀取文本文件的各種方法

    Java讀取文本文件的各種方法

    這篇文章主要介紹了Java讀取文本文件的各種方法,在 Java 中有多種方法可以讀取純文本文件,例如你可以使用FileReader、BufferedReader或Scanner來讀取文本文件,感興趣的小伙伴和小編一起進入文章了解更多內(nèi)容吧,希望能幫助到大家
    2021-11-11
  • 老生常談java中的數(shù)組初始化

    老生常談java中的數(shù)組初始化

    下面小編就為大家?guī)硪黄仙U刯ava中的數(shù)組初始化。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • java聯(lián)系人管理系統(tǒng)簡單設(shè)計

    java聯(lián)系人管理系統(tǒng)簡單設(shè)計

    這篇文章主要為大家詳細介紹了java聯(lián)系人管理系統(tǒng)簡單設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • JavaFx 實現(xiàn)按鈕防抖功能

    JavaFx 實現(xiàn)按鈕防抖功能

    最近Sun公司推出了JavaFX框架,使用它可以利用JavaFX編程語言來開發(fā)富互聯(lián)網(wǎng)應(yīng)用程序(RIA),這篇文章主要介紹了JavaFx 實現(xiàn)按鈕防抖功能,需要的朋友可以參考下
    2022-01-01
  • C#中NAudio音頻庫的安裝與使用教程詳解

    C#中NAudio音頻庫的安裝與使用教程詳解

    NAudio為.NET平臺下的開源庫,采用ML-PL協(xié)議,它支持許多音頻操作,可實現(xiàn)多種API播放與錄制、多種不同音頻格式等功能,下面就跟隨小編一起學習一下NAudio的安裝與使用吧
    2023-11-11
  • Java多線程之ReentrantReadWriteLock源碼解析

    Java多線程之ReentrantReadWriteLock源碼解析

    這篇文章主要介紹了Java多線程之ReentrantReadWriteLock源碼解析,文中有非常詳細的代碼示例,對正在學習java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 淺談Java對象禁止使用基本類型

    淺談Java對象禁止使用基本類型

    本文主要介紹了淺談Java對象禁止使用基本類型,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Java鏈接redis_動力節(jié)點Java學院整理

    Java鏈接redis_動力節(jié)點Java學院整理

    這篇文章主要介紹了Java鏈接redis,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

浑源县| 崇仁县| 高要市| 桃园县| 杭锦后旗| 衡阳市| 英德市| 哈巴河县| 柘荣县| 霸州市| 蓝山县| 阿合奇县| 溧阳市| 基隆市| 从化市| 瓮安县| 行唐县| 绩溪县| 延长县| 旅游| 榆树市| 永康市| 防城港市| 敦煌市| 朝阳县| 阿拉善右旗| 青州市| 延寿县| 山东省| 太谷县| 尼玛县| 拉萨市| 南木林县| 富源县| 建宁县| 崇义县| 米泉市| 阿巴嘎旗| 温州市| 周至县| 固镇县|