瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          RunTime.getRunTime().addShutdownHook用法

          Posted on 2011-07-04 17:36 瘋狂 閱讀(1782) 評論(0)  編輯  收藏 所屬分類: java

          今天在閱讀Tomcat源碼的時候,catalina這個類中使用了下邊的代碼,不是很了解,所以google了一下,然后測試下方法,Tomcat中的相關代碼如下:

                Runtime.getRuntime().addShutdownHook(shutdownHook);

             這個方法的含義說明:

                 這個方法的意思就是在jvm中增加一個關閉的鉤子,當jvm關閉的時候,會執行系統中已經設置的所有通過方法addShutdownHook添加的鉤子,當系統執行完這些鉤子后,jvm才會關閉。所以這些鉤子可以在jvm關閉的時候進行內存清理、對象銷毀等操作。

           

          一、編寫個測試類

            package com.test.hook;

          public class TestShutdownHook {

           /**
            * @param args
            */
           public static void main(String[] args) {
            // 定義線程1
            Thread thread1 = new Thread() {
             public void run() {
              System.out.println("thread1...");
             }
            };

            // 定義線程2
            Thread thread2 = new Thread() {
             public void run() {
              System.out.println("thread2...");
             }
            };

            // 定義關閉線程
            Thread shutdownThread = new Thread() {
             public void run() {
              System.out.println("shutdownThread...");
             }
            };

            // jvm關閉的時候先執行該線程鉤子
            Runtime.getRuntime().addShutdownHook(shutdownThread);

            thread1.start();
            thread2.start();
           }
          }

          打印結果:

          thread2...
          thread1...
          shutdownThread...

          或者:

          thread2...
          thread1...
          shutdownThread...

          結論:

           

          無論是先打印thread1還是thread2,shutdownThread 線程都是最后執行的(因為這個線程是在jvm執行關閉前才會執行)。


          轉載自:http://blog.csdn.net/wgw335363240/article/details/5854402
          主站蜘蛛池模板: 城步| 满洲里市| 茂名市| 山东| 德格县| 罗甸县| 徐州市| 山丹县| 赣州市| 合阳县| 农安县| 广汉市| 和静县| 洮南市| 滕州市| 德庆县| 永新县| 江源县| 平泉县| 苏尼特右旗| 潮安县| 从化市| 渑池县| 平和县| 秦皇岛市| 邮箱| 垣曲县| 东丽区| 宜州市| 汤原县| 大洼县| 乌恰县| 深圳市| 英吉沙县| 金昌市| 台前县| 黄陵县| 乌鲁木齐市| 沙洋县| 田阳县| 丽江市|