開発者が Java 仮想マシンのシャットダウン中に実行されるコードのプラグインを実行できるようにする Java の特別な構造。これは、シャットダウン中にクリーンアップ操作を実行する必要がある場合に非常に必要です。 Java仮想マシンのダウンや、オペレーティングシステムによるリクエストの強制終了やリソースの問題などの理由による仮想マシンのシャットダウンは、一般的な構成では解決できませんが、シャットダウンによって提供される任意のコードブロックを使用することで解決できます。フックは java.lang.Thread クラスの拡張であり、必要なロジックは Java 仮想マシンのシャットダウン中に public void run() メソッド内に提供されます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
コード:
//a class called mythr is defined and it extends a thread class MyThr extends Thread { public void run() { System.out.println("The task of shut down hook is completed"); } } <em>//a class called shutdown is defined</em> public class Shutdown { <em>//main method is called</em> public static void main(String[] args)throws Exception { <em>//an instance of java runtime class is created</em> Runtime roll=Runtime.getRuntime(); <em>//shutdown hook method is called using the instance of runtime class and the instance of mythr class is created</em> roll.addShutdownHook(new MyThr()); System.out.println("The main starts to sleep. Press control and c to exit"); try { Thread.sleep(3000); } catch (Exception e) { } } }
上記のプログラムの出力は、以下のスナップショットに示されているとおりです。
上記のプログラムでは、mthrというクラスを定義し、スレッドを拡張しています。次に、shutdown というクラスが定義されます。次に、main メソッドが呼び出されます。次に、Java ランタイム クラスのインスタンスが作成されます。次に、ランタイム クラスのインスタンスを使用してシャットダウン フック メソッドが呼び出され、mythr クラスのインスタンスが作成されます。メソッド shutdown フックにより、shutdown クラスの print ステートメントが print print され、続いて mythr クラスの run メソッドのステートメントが印刷されます。プログラムの出力は、上のスナップショットに示されているとおりです。
以下に挙げる例を次に示します:
プログラム内でのシャットダウン フックの使用例を示す Java プログラム:
コード:
//a class called shutdown is defined public class ShutDown { //main method is called public static void main(String[] args) { //an instance of java runtime class is created and a new thread constructor is passed as a parameter to shutdown hook method Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("the shut down hook is in progress !"); } }); System.out.println("Termination of application ..."); } }
上記のプログラムの出力は、以下のスナップショットに示されているとおりです。
上記のプログラムでは、シャットダウンするために呼び出されるクラスが定義されています。次に、main メソッドが呼び出されます。次に、Java ランタイム クラスのインスタンスが作成され、新しいスレッド コンストラクターがパラメータとしてシャットダウン フック メソッドに渡されます。プログラムの出力は上のスナップショットに示されています。
プログラム内でのシャットダウン フックの使用例を示す Java プログラム:
コード:
//a class called demo is defined public class Demo { // a class called mess is defined and it extends a thread and this function is called when the program is exiting static class Mess extends Thread { public void run() { System.out.println("Good Bye."); } } //main method is called public static void main(String[] args) { try { //shutdown hook method is called to which the instance of the class mess is passed as a parameter Runtime.getRuntime().addShutdownHook(new Mess()); // the beginning of the program is printed System.out.println("Beginning of the program..."); // the wait time for the thread is printed System.out.println("The wait time for the thread is three seconds..."); Thread.sleep(3000); //Ending of the program is printed System.out.println("Ending of the program..."); } catch (Exception e) { e.printStackTrace(); } } }
上記のプログラムの出力は、以下のスナップショットに示されているとおりです。
上記のプログラムでは、クラス mess が定義されており、スレッドを拡張し、プログラムの終了時にこの関数が呼び出されます。次に、main メソッドが呼び出されます。次に、shutdown フック メソッドが呼び出され、クラス mess のインスタンスがパラメータとして渡されます。次に、プログラムの先頭が出力されます。次に、スレッドの待ち時間が出力されます。その後、番組のエンディングが出力されます。プログラムの出力は、上のスナップショットに示されているとおりです。
Java シャットダウン フックにはいくつかの利点があります。それらは次のとおりです:
このチュートリアルでは、定義を通じて Java のシャットダウン フックの概念を理解し、例とその出力を通じて Java のシャットダウン フックの動作を理解します。
以上がJava シャットダウン フックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。