Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Advanced
Mar 22, 2004



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Release Resources with a Shutdown Hook

JDK 1.3 introduced the addShutdownHook() method to the java.lang.Runtime class. Implementing a shutdown hook is useful if you need to take some action right before your app stops running.

To add a shutdown hook, create an instance of the java.lang.Thread class and supply it as a parameter to the addShutdownHook() method. Because shutdown hooks should be short and to the point, anonymous inner classes are particularly suited for shutdown hooks.

Here's a simple shutdown hook that prints the words "shutting down":

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        System.out.println("shutting down");
The Thread's start() method will be called by the virtual machine when it's shutting down.

In addition to adding a shutdown hook, you may also remove one by calling the method with a reference to a previously registered Thread object. Keep in mind that in order to deregister a hook, you must keep a reference to it, so an anonymous class won't work in this situation.

If you need to do work, cleanup, release resources, etc. when your application is stopping, you may find the shutdown hook useful.

Ramneek Handa
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date