System.exit()
프로그램이 종료되기 전에 종료 후크 를 실행하는 데 사용할 수 있습니다 . 이는 프로그램의 모든 부분이 서로를 인식 할 수없고 인식해서는 안되는 더 큰 프로그램에서 종료를 처리하는 편리한 방법입니다. 그런 다음 누군가 종료하려면 간단히 전화를 걸 수 있으며 System.exit()
종료 후크 (올바르게 설정된 경우)는 파일 닫기, 리소스 해제 등 필요한 모든 종료 행사를 처리합니다.
"이 방법은 정상적으로 반환되지 않습니다." 메서드가 반환되지 않음을 의미합니다. 실이 거기에 가면 다시 돌아 오지 않습니다.
프로그램을 종료하는 또 다른 더 일반적인 방법은 단순히 main
방법 의 끝에 도달하는 것입니다 . 그러나 데몬 이외의 스레드가 실행중인 경우 종료되지 않으므로 JVM이 종료되지 않습니다. 따라서 데몬 이외의 스레드가있는 경우 데몬 이외의 스레드를 모두 종료하고 다른 자원을 해제하려면 다른 방법 (종료 후크보다)이 필요합니다. 데몬 이외의 다른 스레드가없는 경우에서 복귀 main
하면 JVM이 종료되고 종료 후크가 호출됩니다.
어떤 이유로 든 셧다운 훅은 과소 평가되고 오해를 불러 일으키는 메커니즘으로 보이며 사람들은 프로그램을 종료하기 위해 모든 종류의 전용 사용자 지정 해킹으로 휠을 재발 명하고 있습니다. 종료 후크를 사용하는 것이 좋습니다. 어쨌든 사용할 표준 런타임 에는 모두 있습니다 .