0

シャットダウンフックメソッドでは、シャットダウンしたことを示すメッセージを別のプロセスに送信する必要があります。私の現在のメッセージ処理コードでは、メッセージをキューに書き込む必要があります。このキューは別のスレッドによって処理され、どこにでも送信されます。この場合、別のスレッドによってパイプファイルに書き込まれます。

シャットダウンフックで、これらのスレッドが引き続き実行されることを保証できますか?私はいくつかのシャットダウンフックを持っていますが、これらはすべて他のスレッドを必要としない他のものを処理するためのものです。

実行は最小限です。約15行のコードとファイルへの書き込みに必要な待機が実行されますが、これも最小限である必要があります。

4

2 に答える 2

4

addShutdownHookのJavadoc記述から:

「 exitメソッドを呼び出してシャットダウンが開始された場合の非デーモンスレッドと同様に、デーモンスレッドはシャットダウンシーケンス中も実行を継続することに注意してください。」

これを考えると、スレッドはまだ実行されており、スレッドと通信できると想定しても安全です。私が警告する唯一のことは、決定論的な順序で実行されているシャットダウンフックに依存することです。

于 2009-10-22T14:23:50.380 に答える
0

多段階のシャットダウンプロセスが必要なようです。マルチスレッド環境では、シャットダウン手順のガイダンスを提供するために実行する必要のあるコード行を単純に評価することは期待できません...

于 2009-10-22T14:23:44.680 に答える