When do I need to call this method Runtime.getRuntime().addShutdownHook()

后端 未结 3 1353
梦如初夏
梦如初夏 2020-12-02 13:21

When do I actually need call this method Runtime.getRuntime().addShutdownHook() and when or why I need to shutdown my application. Could anyone please explain me this by giv

3条回答
  •  -上瘾入骨i
    2020-12-02 13:41

    As far as I know, I will explain this below. You can google it and find lot of information too.

    addShutdownHook() will register some actions which is to be performed on a Program's termination. The program that you start ends in two ways:

    1. the main thread (Root) ends its running context;
    2. the program meets some unexpected situation, so it cannot proceed further.

    If you add a ShutdownHook, the hook will start a thread that will start running at time of termination only. For example:

     Runtime.getRuntime().addShutdownHook(new Thread() {
          public void run() {
            System.out.println("Running Shutdown Hook");
          }
        });
    

    will print a Running Shutdown Hook at the time of program termination at any point. You might even call a System.exit(0).

    For examples, you can google, there are enough of them. And the question 'When should you use this' is like asking 'What does catch do in a try-catch statement'.

    You might have many situations like:

    • your program had created many temporary files in filesystem you want to delete it;
    • you need to send a distress signal to another process/machine before terminating;
    • execute any clean-up actions, logging or after-error actions on unexpected behaviours.

    All this will be needed for some point of time.

    For examples you can go in here Example 1 or Example 2

提交回复
热议问题