JavaTM 2 Platform
Standard Ed. 6

java.lang
類別 ThreadGroup

java.lang.Object
  繼承者 java.lang.ThreadGroup
所有已實作的介面:
Thread.UncaughtExceptionHandler

public class ThreadGroup
extends Object
implements Thread.UncaughtExceptionHandler

執行緒組表示一個執行緒的集合。此外,執行緒組也可以包含其他執行緒組。執行緒組構成一棵階層樹,在階層樹中,除了初始執行緒組外,每個執行緒組都有一個父執行緒組。

允許執行緒存取有關自己的執行緒組的資訊,但是不允許它存取有關其執行緒組的父執行緒組或其他任何執行緒組的資訊。

從以下版本開始:
JDK1.0

建構子摘要
ThreadGroup(String name)
          建構一個新執行緒組。
ThreadGroup(ThreadGroup parent, String name)
          創建一個新執行緒組。
 
方法摘要
 int activeCount()
          返回此執行緒組中活動執行緒的估計數。
 int activeGroupCount()
          返回此執行緒組中活動執行緒組的估計數。
 boolean allowThreadSuspension(boolean b)
          已過時。 此調用的定義取決於 suspend(),它被廢棄了。更進一步地說,此調用的行為從不被指定。
 void checkAccess()
          確定當前運行的執行緒是否有權修改此執行緒組。
 void destroy()
          銷毀此執行緒組及其所有子組。
 int enumerate(Thread[] list)
          把此執行緒組及其子組中的所有活動執行緒複製到指定陣列中。
 int enumerate(Thread[] list, boolean recurse)
          把此執行緒組中的所有活動執行緒複製到指定陣列中。
 int enumerate(ThreadGroup[] list)
          把對此執行緒組中的所有活動子組的參考複製到指定陣列中。
 int enumerate(ThreadGroup[] list, boolean recurse)
          把對此執行緒組中的所有活動子組的參考複製到指定陣列中。
 int getMaxPriority()
          返回此執行緒組的最高優先級。
 String getName()
          返回此執行緒組的名稱。
 ThreadGroup getParent()
          返回此執行緒組的父執行緒組。
 void interrupt()
          中斷此執行緒組中的所有執行緒。
 boolean isDaemon()
          測試此執行緒組是否為一個後台程序執行緒組。
 boolean isDestroyed()
          測試此執行緒組是否已經被銷毀。
 void list()
          將有關此執行緒組的資訊列印到標準輸出。
 boolean parentOf(ThreadGroup g)
          測試此執行緒組是否為執行緒組參數或其祖先執行緒組之一。
 void resume()
          已過時。 此方法只用於聯合 Thread.suspendThreadGroup.suspend 時,因為它們所固有的容易導致死鎖的特性,所以兩者都已廢棄。有關詳細資訊,請參閱 Thread.suspend()
 void setDaemon(boolean daemon)
          更改此執行緒組的後台程序狀態。
 void setMaxPriority(int pri)
          設置執行緒組的最高優先級。
 void stop()
          已過時。 此方法具有固有的不安全性。有關詳細資訊,請參閱 Thread.stop()
 void suspend()
          已過時。 此方法容易導致死鎖。有關詳細資訊,請參閱 Thread.suspend()
 String toString()
          返回此執行緒組的字元串表示形式。
 void uncaughtException(Thread t, Throwable e)
          當此執行緒組中的執行緒因為一個未捕獲的異常而停止,並且執行緒沒有安裝特定 Thread.UncaughtExceptionHandler 時,由 Java Virtual Machine 調用此方法。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

ThreadGroup

public ThreadGroup(String name)
建構一個新執行緒組。新執行緒組的父執行緒組是目前正在運行執行緒的執行緒組。

不使用任何參數調用父執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

參數:
name - 新執行緒組的名稱。
拋出:
SecurityException - 如果當前執行緒不能在指定的執行緒組中創建執行緒。
從以下版本開始:
JDK1.0
另請參見:
checkAccess()

ThreadGroup

public ThreadGroup(ThreadGroup parent,
                   String name)
創建一個新執行緒組。新執行緒組的父執行緒組是指定的執行緒組。

不使用任何參數調用父執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

參數:
parent - 父執行緒組。
name - 新執行緒組的名稱。
拋出:
NullPointerException - 如果執行緒組參數為 null
SecurityException - 如果當前執行緒不能在指定的執行緒組中創建執行緒。
從以下版本開始:
JDK1.0
另請參見:
SecurityException, checkAccess()
方法詳細資訊

getName

public final String getName()
返回此執行緒組的名稱。

返回:
此執行緒組的名稱。
從以下版本開始:
JDK1.0

getParent

public final ThreadGroup getParent()
返回此執行緒組的父執行緒組。

首先,如果父執行緒組不為 null,則不使用任何參數直接調用父執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

返回:
執行緒組的父執行緒組。頂級執行緒組僅為那些父執行緒組為 null 的執行緒組。
拋出:
SecurityException - 如果當前執行緒無法修改此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
checkAccess(), SecurityException, RuntimePermission

getMaxPriority

public final int getMaxPriority()
返回此執行緒組的最高優先級。作為此執行緒組一部分的執行緒不能擁有比最高優先級更高的優先級。

返回:
此執行緒組中的執行緒可擁有的最高優先級。
從以下版本開始:
JDK1.0
另請參見:
setMaxPriority(int)

isDaemon

public final boolean isDaemon()
測試此執行緒組是否為一個後台程序執行緒組。在停止後台程序執行緒組的最後一個執行緒或銷毀其最後一個執行緒組時,自動銷毀這個後台程序執行緒組。

返回:
如果此執行緒組是一個後台程序執行緒組,則返回 true;否則返回 false
從以下版本開始:
JDK1.0

isDestroyed

public boolean isDestroyed()
測試此執行緒組是否已經被銷毀。

返回:
如果此物件被銷毀,則返回 true
從以下版本開始:
JDK1.1

setDaemon

public final void setDaemon(boolean daemon)
更改此執行緒組的後台程序狀態。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

在停止後台程序執行緒組的最後一個執行緒或銷毀其最後一個執行緒組時,自動銷毀此後台程序執行緒組。

參數:
daemon - 如果為 true,則表示此執行緒組是一個後台程序執行緒組;否則,表示此執行緒組是一個普通執行緒組。
拋出:
SecurityException - 如果當前執行緒無法修改此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
SecurityException, checkAccess()

setMaxPriority

public final void setMaxPriority(int pri)
設置執行緒組的最高優先級。執行緒組中已有較高優先級的執行緒不受影響。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

如果 pri 參數小於 Thread.MIN_PRIORITY 或大於 Thread.MAX_PRIORITY,則執行緒組的最高優先級保持不變。

否則,此 ThreadGroup 物件的優先級被設置為比指定的 pri 參數更小,所允許的最高優先級是此執行緒組的父執行緒組的優先級。(如果此執行緒組是系統執行緒組,沒有父執行緒組,那麼只需將最高優先級設置為 pri 即可。)然後使用 pri 作為此方法的參數,以遞歸的方式對屬於此執行緒組的每個執行緒組調用此方法。

參數:
pri - 執行緒組的新優先級。
拋出:
SecurityException - 如果當前執行緒無法修改此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
getMaxPriority(), SecurityException, checkAccess()

parentOf

public final boolean parentOf(ThreadGroup g)
測試此執行緒組是否為執行緒組參數或其祖先執行緒組之一。

參數:
g - 一個執行緒組。
返回:
如果此執行緒組是執行緒組參數或其祖先執行緒組之一,則返回 true;否則返回 false
從以下版本開始:
JDK1.0

checkAccess

public final void checkAccess()
確定當前運行的執行緒是否有權修改此執行緒組。

如果有安全管理器,則用此執行緒組作為其參數調用 checkAccess 方法。結果可能是拋出一個 SecurityException

拋出:
SecurityException - 如果不允許當前執行緒存取此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
SecurityManager.checkAccess(java.lang.ThreadGroup)

activeCount

public int activeCount()
返回此執行緒組中活動執行緒的估計數。結果並不能反映共時活動,並且可能受某些系統執行緒的存在狀態的影響。

由於結果所固有的不精確特性,建議只將此方法用於資訊目的。

返回:
此執行緒組和將此執行緒組作為其祖先的其他執行緒組中活動執行緒的估計數。
從以下版本開始:
JDK1.0

enumerate

public int enumerate(Thread[] list)
把此執行緒組及其子組中的所有活動執行緒複製到指定陣列中。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

應用程序可以使用 activeCount 方法獲取陣列大小的估計數,但是,如果陣列太小而無法保持所有執行緒,則忽略額外的執行緒。如果獲得此執行緒組及其子組中的所有活動執行緒非常重要,則調用方應該驗證返回的 int 值是否嚴格小於 list 的長度。

由於使用此方法所固有的競爭條件,建議只將此方法用於資訊目的。

參數:
list - 放置執行緒列表的陣列。
返回:
放入陣列中的執行緒數。
拋出:
SecurityException - 如果不允許當前執行緒列舉此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
activeCount(), checkAccess()

enumerate

public int enumerate(Thread[] list,
                     boolean recurse)
把此執行緒組中的所有活動執行緒複製到指定陣列中。如果 recurse 標誌為 true,則還包括對此執行緒的子組中的所有活動執行緒的參考。如果陣列太小而無法保持所有執行緒,則忽略額外的執行緒。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

應用程序可以使用 activeCount 獲取陣列大小的估計數,但是,如果陣列太小而無法保持所有執行緒,則忽略額外的執行緒。如果獲得此執行緒組中的所有活動執行緒非常重要,則調用方應該驗證返回的整數值是否確實小於 list 的長度。

由於使用此方法所固有的競爭條件,建議只將此方法用於資訊目的。

參數:
list - 放置執行緒列表的陣列。
recurse - 一個標記,指示是否還包括作為此執行緒組的子組的執行緒組中的執行緒。
返回:
放入陣列中的執行緒數。
拋出:
SecurityException - 如果不允許當前執行緒列舉此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
activeCount(), checkAccess()

activeGroupCount

public int activeGroupCount()
返回此執行緒組中活動執行緒組的估計數。結果並不能反映共時活動。

由於結果所固有的不精確特性,建議只將此方法用於資訊目的。

返回:
將此執行緒組作為祖先執行緒組的活動執行緒組的數量。
從以下版本開始:
JDK1.0

enumerate

public int enumerate(ThreadGroup[] list)
把對此執行緒組中的所有活動子組的參考複製到指定陣列中。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

應用程序可以使用 activeGroupCount 獲取陣列大小的估計數,但是,如果陣列太小而無法保持所有執行緒組,則忽略額外的執行緒組。如果獲得此執行緒組中的所有活動子組非常重要,則調用方應該驗證返回的整數值是否確實小於 list 的長度。

由於使用此方法所固有的競爭條件,建議只將此方法用於資訊目的。

參數:
list - 放置執行緒組列表的陣列。
返回:
放入陣列中的執行緒組的數量。
拋出:
SecurityException - 如果不允許當前執行緒列舉此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
activeGroupCount(), checkAccess()

enumerate

public int enumerate(ThreadGroup[] list,
                     boolean recurse)
把對此執行緒組中的所有活動子組的參考複製到指定陣列中。如果 recurse 標誌為 true,則還包括對子組的所有活動子組的參考,等等。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

應用程序可以使用 activeGroupCount 獲取陣列大小的估計數,但是,如果陣列太小而無法保持所有執行緒組,則忽略額外的執行緒組。如果獲得此執行緒組中的所有活動子組非常重要,則調用方應該驗證返回的整數值是否確實小於 list 的長度。

由於使用此方法所固有的競爭條件,建議只將此方法用於資訊目的。

參數:
list - 放置執行緒列表的陣列。
recurse - 一個標記,指示是否以遞歸的方式列舉所有已包含的執行緒組。
返回:
放入陣列中的執行緒組的數量。
拋出:
SecurityException - 如果不允許當前執行緒列舉此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
activeGroupCount(), checkAccess()

stop

@Deprecated
public final void stop()
已過時。 此方法具有固有的不安全性。有關詳細資訊,請參閱 Thread.stop()

停止此執行緒組中的所有執行緒。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

然後,此方法將對此執行緒組及其所有子組中的所有執行緒調用 stop 方法。

拋出:
SecurityException - 如果不允許當前執行緒存取此執行緒組或執行緒組中的任何執行緒。
從以下版本開始:
JDK1.0
另請參見:
SecurityException, Thread.stop(), checkAccess()

interrupt

public final void interrupt()
中斷此執行緒組中的所有執行緒。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

然後,此方法將對此執行緒組及其所有子組中的所有執行緒調用 interrupt 方法。

拋出:
SecurityException - 如果不允許當前執行緒存取此執行緒組或執行緒組中的任何執行緒。
從以下版本開始:
1.2
另請參見:
Thread.interrupt(), SecurityException, checkAccess()

suspend

@Deprecated
public final void suspend()
已過時。 此方法容易導致死鎖。有關詳細資訊,請參閱 Thread.suspend()

掛起此執行緒組中的所有執行緒。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

然後,此方法將對該執行緒組及其所有子組中的所有執行緒調用 suspend 方法。

拋出:
SecurityException - 如果不允許當前執行緒存取此執行緒組或執行緒組中的任何執行緒。
從以下版本開始:
JDK1.0
另請參見:
Thread.suspend(), SecurityException, checkAccess()

resume

@Deprecated
public final void resume()
已過時。 此方法只用於聯合 Thread.suspendThreadGroup.suspend 時,因為它們所固有的容易導致死鎖的特性,所以兩者都已廢棄。有關詳細資訊,請參閱 Thread.suspend()

繼續此執行緒組中的所有執行緒。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

然後,此方法將對該執行緒組及其所有子組中的所有執行緒調用 resume 方法。

拋出:
SecurityException - 如果不允許當前執行緒存取此執行緒組或執行緒組中的任何執行緒。
從以下版本開始:
JDK1.0
另請參見:
SecurityException, Thread.resume(), checkAccess()

destroy

public final void destroy()
銷毀此執行緒組及其所有子組。此執行緒組必須為空,指示此執行緒組中的所有執行緒都已停止執行。

首先,不使用任何參數調用此執行緒組的 checkAccess 方法;這可能導致一個安全性異常。

拋出:
IllegalThreadStateException - 如果執行緒組不為空,或者執行緒組已經被銷毀。
SecurityException - 如果當前執行緒不能修改此執行緒組。
從以下版本開始:
JDK1.0
另請參見:
checkAccess()

list

public void list()
將有關此執行緒組的資訊列印到標準輸出。此方法只對除錯有用。

從以下版本開始:
JDK1.0

uncaughtException

public void uncaughtException(Thread t,
                              Throwable e)
當此執行緒組中的執行緒因為一個未捕獲的異常而停止,並且執行緒沒有安裝特定 Thread.UncaughtExceptionHandler 時,由 Java Virtual Machine 調用此方法。

ThreadGroupuncaughtException 方法執行以下操作:

應用程序可以覆寫 ThreadGroup 的子類別中的方法,以提供處理未捕獲異常的替代辦法。

指定者:
介面 Thread.UncaughtExceptionHandler 中的 uncaughtException
參數:
t - 即將退出的執行緒。
e - 未捕獲的異常。
從以下版本開始:
JDK1.0

allowThreadSuspension

@Deprecated
public boolean allowThreadSuspension(boolean b)
已過時。 此調用的定義取決於 suspend(),它被廢棄了。更進一步地說,此調用的行為從不被指定。

由 VM 用於控制記憶體不足時的隱式掛起。

參數:
b - 允許或不允許掛起時的布林值
返回:
如果成功,則返回 true
從以下版本開始:
JDK1.1

toString

public String toString()
返回此執行緒組的字元串表示形式。

覆寫:
類別 Object 中的 toString
返回:
此執行緒組的字元串表示形式。
從以下版本開始:
JDK1.0

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only