Java程序退出處理

在Java程序退出時,希望做一些保存處理,比如釋放一些資源,或者保證事務執行完再推出。

在Linux環境下,需要使用kill -15 pid命令殺死進程,才能得到通知。
而window環境下,只能通過ctrl+c退出纔有效,命令殺死進程或者任務管理器殺死,都不會得到通知。

第一種方式

 Runtime.getRuntime().addShutdownHook(new Thread(){
            @Override
            public void run() {
                System.out.println("關閉,事後處理");
                bossG.shutdownGracefully();
                workerG.shutdownGracefully();
            }
        });

第二種

 String s =System.getProperties().getProperty("os.name").toLowerCase().startsWith("win")?"INT":"TERM";
        System.out.println(s);
        Signal signal = new Signal(s);
        Signal.handle(signal, new SignalHandler() {
            @Override
            public void handle(Signal signal) {
                System.out.println("關閉");
                bossG.shutdownGracefully();
                workerG.shutdownGracefully();
            }
        });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章