개발자가 Java 가상 머신을 종료하는 동안 실행될 코드 조각의 플러그인을 수행할 수 있도록 하는 Java의 특수 구성이며 이는 종료하는 동안 정리 작업을 수행해야 할 때 매우 필요합니다. Java 가상 머신의 다운 및 운영 체제의 요청 종료 또는 리소스 문제 등의 이유로 가상 머신이 종료되는 경우 일반적인 구조로는 해결할 수 없지만 종료에서 제공하는 임의의 코드 블록을 사용하면 해결할 수 있습니다. Hook이며 java.lang.Thread 클래스의 확장이며 Java 가상 머신을 종료하는 동안 public void run() 메소드 내부에 필요한 로직이 제공됩니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
코드:
//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이라는 클래스가 정의됩니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 Java 런타임 클래스의 인스턴스가 생성됩니다. 그런 다음 런타임 클래스의 인스턴스를 사용하여 종료 후크 메서드가 호출되고 신화 클래스의 인스턴스가 생성됩니다. 메소드 shutdown 후크를 사용하면 shutdown 클래스의 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 ..."); } }
위 프로그램의 출력은 아래 스냅샷과 같습니다.
위 프로그램에는 종료를 호출하는 클래스가 정의되어 있습니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 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를 정의하고 스레드를 확장하며 프로그램이 종료될 때 이 함수가 호출됩니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 클래스 mess의 인스턴스가 매개변수로 전달되는 종료 후크 메소드가 호출됩니다. 그런 다음 프로그램의 시작 부분이 인쇄됩니다. 그런 다음 스레드의 대기 시간이 인쇄됩니다. 그런 다음 프로그램의 엔딩이 인쇄됩니다. 프로그램의 출력은 위의 스냅샷과 같습니다.
Java 종료 후크에는 여러 가지 장점이 있습니다. 그들은:
이 튜토리얼에서는 정의를 통해 Java의 종료 후크 개념을 이해하고 예제와 해당 출력을 통해 Java의 종료 후크 작동을 이해합니다.
위 내용은 Java 종료 후크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!