1. 線程優先權
          每個線程都有一定的優先權,且默認從父線程繼承優先權,也就是運行這個線程的線程??梢允褂胹etPriority方法設置,從MIN_PRIORITY(1)到MAX_PRIORITY(10),NORM_PRIORITY是5。
          然而線程優先權更多的是由系統決定的。如在WinXP/NT有若干個優先等級,某些Java的優先級也自動對應到相應的等級上。但是在Sun JVM for Linux中,線程優先權被忽視,所有的線程享有相同的優先權。
          所以,最好把線程僅僅看成是對線程管理器的hint。不要由線程優先級來決定你的程序結構。
          注意:在使用優先級的時候,如果某幾個很少會停滯的線程享有高優先級,很有可能低優先級的線程就不會被運行。
          2. Daemon進程
          把一個進程變為daemon進程可以調用方法setDaemon(true)。所謂daemon,就是只用來服務其他進程的進程,所以當只有daemon進程運行時,JVM就退出了。
          3. 進程組
          ThreadGroup g = new ThreadGroup(String groupName);
          注意groupName必須唯一。
          加入線程:
          Thread t = new Thread(g, String threadName);
          進程組中可以有子進程組,新創建的子進程組默認屬于當前進程組。
          ThreadGroup類的方法:
          int activeCount() 返回組中活動的線程數。
          int enumerate(Thread[] list) 獲得組中每個活動進程的引用,返回實際加入list的進程數。
          ThreadGroup getParent()
          void interrupt 中止所有的進程和子進程組。
          4. 處理未捕獲異常
          線程的run方法并不能拋出任何checked異常,但因為一個unchecked異常而結束。
          在線程結束前,異常會被傳遞給一個處理器。
          異常處理器必須實現了Thread.UncaughtExceptionHandler接口,后者只有一個方法
          void uncaughtException(Thread t, Throwable e)
          可以在任何線程中使用setUncaughtExceptionHandler方法設置處理器,也可以使用Thread的靜態方法setDefaultUncaughtExceptionHandler為每個線程指定默認的處理器。如果不為每個獨立的線程指定處理器,處理器默認為該線程的線程組對象。
          ThreadGroup類實現了Thread.UncaughtExceptionHandler接口,它的uncaughtException方法按下列步驟進行:
          1)如果該進程組有父進程組,調用父進程組的uncaughtException方法。
          2)否則,如果Thread.getDefaultUncaughtExceptionHandler返回一個非null的引用,該處理器被調用。
          3)如果仍未找到,且Throwable參數是ThreadDeath的實例,不進行任何處理。
          4)上述都未執行的話,進程名和Throwable參數的調用棧就會輸出到System.err上

          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2.28 Java notes - Thread Properties

          Posted on 2007-04-22 20:25 ZelluX 閱讀(286) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-28 14:05:52
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 诸暨市| 新乡市| 广宁县| 敦化市| 韶关市| 临海市| 舒城县| 定结县| 东至县| 林州市| 棋牌| 绍兴市| 岑巩县| 浦城县| 湖南省| 孟津县| 武宣县| 安塞县| 通河县| 扎鲁特旗| 孝昌县| 寻乌县| 平泉县| 连山| 吴旗县| 东源县| 柳江县| 淮安市| 贵州省| 安吉县| 沅陵县| 汾阳市| 织金县| 晴隆县| 乌什县| 延寿县| 巴彦淖尔市| 铜陵市| 贵溪市| 涪陵区| 湟源县|