5

JVM で実行した場合 (実際には Scala で記述されていますが、解決策は Groovy、Clojure、または純粋な Java でもほぼ同じであると考えがちです)、私のコンソール プログラムは、ユーザーがCtrl+を押しCて (またはシステムのシャットダウン シーケンス、プログラムに違いがあるかどうかはわかりません)、アプリケーションが変更する外部リソース (データベース、ファイル、Web サービスの抽象化されたリソース) が予測可能な非論理的に壊れた状態?

4

3 に答える 3

7

Runtime.addShutdownHookを見てください。

通常は次のように使用します。

Runtime.addShutdownHook(new Thread() {
    public void run() {
        // do your clean up here.
    }
});
于 2012-02-03T12:06:13.703 に答える
3

このシグナルをトラップして、リソースを閉じることができます。ほとんどのサービスは適切に閉じる必要はありませんが、書き込むファイルは通常そうします。

シャットダウンフックを追加するだけで十分です。しかし、私はあなたの状況でこれをテストします。

于 2012-02-03T12:06:04.687 に答える