문제

Java에 응용 프로그램이 있는데, 이는 Code System.exit ()가 코드에서 코드를 종료하는지 확인하려고 노력합니다. 청취자는 로깅 메시지 및 리소스 공개와 같은 일부 작업을 수행하도록 요청해야합니다.

어떻게 구현할 수 있습니까? 제안/접근 방식을 환영합니다.

도움이 되었습니까?

해결책

그만큼 Runtime.addShutdownHook 메소드는 셧다운 후크를 추가하는 데 사용될 수 있습니다. Thread, Java Virtual Machine의 종료시 실행됩니다.

그러나 이것은 JVM의 수명주기의 매우 민감한 시간에 수행되기 때문에 조심스럽게 밟아야하는 영토입니다. API 사양에서 Runtime.addShutdownHook 방법:

셧다운 후크는 가상 머신의 수명주기에서 섬세한 시간에 실행되므로 방어 적으로 코딩해야합니다. 특히 그들은 스레드-안전하고 가능한 한 교착 상태를 피하기 위해 작성되어야합니다.

어쨌든, 셧다운 후크가 어떻게 작동하는지에 대해 조금 읽어야합니다. 아마도 좋은 준비없이 접근해서는 안됩니다. API 사양을 신중하게 읽으십시오. Runtime.addShutdownHook 방법.

다음은이 답변에 대한 정보를 검색하여 찾은 몇 가지 기사입니다.

  • 셧다운 후크 - 종료시 로깅을 위해 종료 후크가 추가되는 방법에 대한 작은 예를 보여줍니다.

  • 셧다운 후크 디자인 API - 질문과 답변 스타일로 셧다운 후크의 디자인 결정을 다룹니다.

다른 팁

함수 Runtime.addShutdownHook(Thread thehook) Java 가상 머신에 후크를 등록 할 수 있습니다.
후크는 초기화되었지만 끊임없는 스레드로 작동하며 출구에서 JVM이 호출합니다. 둘 이상의 후크를 등록하는 경우 후크가 호출되는 순서가 정의되지 않았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top