問題タブ [shutdown-hook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - System.exit がシャットダウン フックから呼び出されるとどうなりますか?
私は Java でかなり複雑なシャットダウンをしています - やるべきクリーンアップ作業がたくさんあります。特に、シャットダウン フック スレッドからエラー処理を行う方法を理解しようとしています。私のコードには現在これが含まれています:
私が最初にこれを書いたとき、私は基本的に、シャットダウンのエラーはそのままexit
. でもexit
、そんなに低レベルじゃないですよ~。シャットダウンフックを呼び出します。
ので、私は考えました -
- シャットダウン フックから exit を呼び出すとどうなりますか?
- シャットダウンフックからのエラー処理の正しい方法は何ですか?
spring - プロジェクトで addShutdownHook を使用するにはどうすればよいですか?
このようなShutdownHookを使用するコードを見ました
このようにするのに役立つことはありますか?
私は思った
jvm が終了すると、おそらくスレッドはすぐにシャットダウンされ、スプリング コンテキストも閉じられます。</p>
System.exit() を呼び出す必要がある場合、次に何をすればよいでしょうか?
java - シャットダウン フック 通常のシャットダウンと突然の (ユーザーによる) シャットダウンを区別する方法
私のアプリケーションでは、最後のトランザクションをクリーンアップして終了するためのシャットダウン フックを追加しました。すべてのドキュメントが述べているように、このフックは「通常の」シャットダウンでも呼び出されます-すべてが終了した場合。
しかし、私はユーザーにいくつかのフィードバックを提供したいと思います:
「ctrl-c が検出されました - 終了しようとしています...」
このフィードバックは、「突然」シャットダウンした場合にのみ提供したいものです。
シャットダウンフックでシャットダウンの種類を検出する方法はありますか?
java - QUIT シグナルの送信時に addshutdownHook が呼び出されない
「kill -s 3」が実行されたときにJavaアプリケーションを終了させたいです。ただし、Java は代わりにスレッド情報をダンプします。別のキルシグナルを使用する必要がありますか?
java - シャットダウンフックとファイナライザーメソッド
なぜRuntime.addShutdownHookを使わなければならないのか理解できません。jvm の終了時に何らかのクリーンアップを実行したい場合は、デーモン クラスの finalize メソッドをオーバーロードしてみませんか。finalize メソッドよりもシャットダウン フックを使用する利点は何ですか。
また、非推奨の関数 runFinalizersOnExit もあります。false に設定すると、ファイナライザーは実行されないと思います。これは、ファイナライザーが常にガベージ コレクションの前に実行されるという Java の保証と矛盾します。
java - シャットダウン フックに関するクエリ
- 私が正しく取得した場合、各JavaプロセスはJVMの個別のインスタンスに関連付けられ、JVMの各インスタンスにはOSによってヒープメモリが提供され、JVMの終了時にOSによって再収集されます。
So on termination even if there were some memory leaks all the memory will be reclaimed by the OS(Please correct if I have mistaken)
. - ポイント番号 1 が当てはまる場合、シャットダウン フックを使用する必要があるのはなぜですか。グーグルで調べた後、主にすべてのリソースを解放し、正常にシャットダウンすることをお勧めします。
Even if it does not gracefully shutdown all the memory and resources would be freed?
- 簡単なシャットダウンフックを書きました。私のメインスレッドでは、無限ループを実行してから、終了ボタンを使用してプロセスを終了しています
Eclipse
。しかし、シャットダウン フック スレッドは実行されていません。Runtime.getRuntime().halt(status)
JVMを突然終了し、シャットダウンフックを実行しないAFAIKが原因で、Eclipse呼び出しでプロセスを終了しますか? 最後に、以下のようなメインコードがある場合-
なぜ
After exit
印刷されないのですか?シャットダウンフックが実行中の場合、メインスレッドはさらに実行を続けて出力する必要がありますAfter exit
か?