W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
java.lang.Object
|---java.lang.ThreadGroup
public class ThreadGroup
extends Object
implements Thread.UncaughtExceptionHandler
一個線程組代表一組線程。 此外,一個線程組還可以包括其他線程組。 線程組形成一棵樹,其中除了初始線程組之外的每個線程組都有一個父級。
允許線程訪問有關其自己的線程組的信息,但不能訪問有關其線程組的父線程組或任何其他線程組的信息。
構造函數(shù) | 描述 |
---|---|
ThreadGroup(String name) | 構造一個新的線程組。 |
ThreadGroup(ThreadGroup parent, String name) | 創(chuàng)建一個新的線程組。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
int | activeCount() | 返回此線程組及其子組中活動線程數(shù)的估計值。 |
int | activeGroupCount() | 返回此線程組及其子組中活動組數(shù)的估計值。 |
boolean | allowThreadSuspension(boolean b) | 已棄用。 此調用的定義取決于已棄用的suspend()。 此外,從未指定此調用的行為。 |
void | checkAccess() | 確定當前運行的線程是否有權修改此線程組。 |
void | destroy() | 銷毀此線程組及其所有子組。 |
int | enumerate(Thread[] list) | 將此線程組及其子組中的每個活動線程復制到指定的數(shù)組中。 |
int | enumerate(Thread[] list, boolean recurse) | 將此線程組中的每個活動線程復制到指定的數(shù)組中。 |
int | enumerate(ThreadGroup[] list) | 將對該線程組及其子組中每個活動子組的引用復制到指定的數(shù)組中。 |
int | enumerate(ThreadGroup[] list, boolean recurse) | 將對該線程組中每個活動子組的引用復制到指定的數(shù)組中。 |
int | getMaxPriority() | 返回此線程組的最大優(yōu)先級。 |
String | getName() | 返回此線程組的名稱。 |
ThreadGroup | getParent() | 返回此線程組的父級。 |
void | interrupt() | 中斷此線程組中的所有線程。 |
boolean | isDaemon() | 測試此線程組是否為守護線程組。 |
boolean | isDestroyed() | 測試此線程組是否已被銷毀。 |
void | list() | 將有關此線程組的信息打印到標準輸出。 |
boolean | parentOf(ThreadGroup g) | 測試此線程組是線程組參數(shù)還是它的祖先線程組之一。 |
void | resume() | 已棄用。 此方法僅與 Thread.suspend 和 ThreadGroup.suspend 一起使用,這兩種方法都已被棄用,因為它們本身就容易死鎖。 |
void | setDaemon(boolean daemon) | 更改此線程組的守護程序狀態(tài)。 |
void | setMaxPriority(int pri) | 設置組的最大優(yōu)先級。 |
void | stop() | 已棄用。 這種方法本質上是不安全的。 |
void | suspend() | 已棄用。 這種方法本質上容易死鎖。 |
String | toString() | 返回此線程組的字符串表示形式。 |
void | uncaughtException(Thread t, Throwable e) | 當此線程組中的線程由于未捕獲的異常而停止并且該線程沒有安裝特定的 Thread.UncaughtExceptionHandler 時,由 Java 虛擬機調用。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
public ThreadGroup(String name)
構造一個新的線程組。 這個新組的父組是當前運行線程的線程組。
調用父線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
name | 新線程組的名稱。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果當前線程無法在指定線程組中創(chuàng)建線程。 |
public ThreadGroup(ThreadGroup parent, String name)
創(chuàng)建一個新的線程組。 這個新組的父級是指定的線程組。
調用父線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
parent | 父線程組。 |
name | 新線程組的名稱。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果線程組參數(shù)為空。 |
SecurityException | 如果當前線程無法在指定線程組中創(chuàng)建線程。 |
public final String getName()
返回此線程組的名稱。
返回:
此線程組的名稱。
public final ThreadGroup getParent()
返回此線程組的父級。
首先,如果parent不為null,則調用父線程組的checkAccess方法,不帶參數(shù); 這可能會導致安全異常。
返回:
此線程組的父級。 頂級線程組是唯一其父級為空的線程組。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果當前線程不能修改這個線程組。 |
public final int getMaxPriority()
返回此線程組的最大優(yōu)先級。 屬于該組的線程的優(yōu)先級不能高于最大優(yōu)先級。
返回:
此線程組中的線程可以擁有的最大優(yōu)先級。
public final boolean isDaemon()
測試此線程組是否為守護線程組。 守護線程組在其最后一個線程停止或其最后一個線程組被銷毀時自動銷毀。
返回:
如果此線程組是守護線程組,則為 true; 否則為假。
public boolean isDestroyed()
測試此線程組是否已被銷毀。
返回:
如果此對象被銷毀,則為 true
public final void setDaemon(boolean daemon)
更改此線程組的守護程序狀態(tài)。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
守護線程組在其最后一個線程停止或其最后一個線程組被銷毀時自動銷毀。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
daemon | 如果為true,則將此線程組標記為守護線程組; 否則,將此線程組標記為正常。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果當前線程不能修改這個線程組。 |
public final void setMaxPriority(int pri)
設置組的最大優(yōu)先級。 線程組中已經具有較高優(yōu)先級的線程不受影響。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
如果 pri 參數(shù)小于 Thread#MIN_PRIORITY 或大于 Thread#MAX_PRIORITY,則組的最大優(yōu)先級保持不變。
否則,此 ThreadGroup 對象的優(yōu)先級設置為指定的 pri 和此線程組的父級允許的最大優(yōu)先級中的較小者。 (如果這個線程組是系統(tǒng)線程組,它沒有父線程,那么它的最大優(yōu)先級簡單地設置為 pri。)然后這個方法被遞歸調用,以 pri 作為它的參數(shù),對于屬于這個線程組的每個線程組 .
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pri | 線程組的新優(yōu)先級。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果當前線程不能修改這個線程組。 |
public final boolean parentOf(ThreadGroup g)
測試此線程組是線程組參數(shù)還是它的祖先線程組之一。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
g | 一個線程組。 |
返回:
如果此線程組是線程組參數(shù)或其祖先線程組之一,則為 true; 否則為假。
public final void checkAccess()
確定當前運行的線程是否有權修改此線程組。
如果有一個安全管理器,它的 checkAccess 方法會以這個線程組作為它的參數(shù)被調用。 這可能會導致拋出 SecurityException。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果當前線程不允許訪問這個線程組。 |
public int activeCount()
返回此線程組及其子組中活動線程數(shù)的估計值。 遞歸迭代此線程組中的所有子組。
返回的值只是一個估計值,因為在此方法遍歷內部數(shù)據(jù)結構時線程數(shù)可能會動態(tài)變化,并且可能會受到某些系統(tǒng)線程的存在的影響。 此方法主要用于調試和監(jiān)視目的。
返回:
此線程組和以該線程組為祖先的任何其他線程組中的活動線程數(shù)的估計
public int enumerate(Thread[] list)
將此線程組及其子組中的每個活動線程復制到指定的數(shù)組中。
此方法的調用與調用的行為方式完全相同
enumerate(list, true)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 將線程列表放入其中的數(shù)組 |
返回:
放入數(shù)組的線程數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | if checkAccess判斷當前線程不能訪問這個線程組 |
public int enumerate(Thread[] list, boolean recurse)
將此線程組中的每個活動線程復制到指定的數(shù)組中。 如果 recurse 為真,則此方法遞歸枚舉此線程組的所有子組,并且還包括對這些子組中每個活動線程的引用。 如果數(shù)組太短而無法容納所有線程,則會默默忽略多余的線程。
應用程序可能會使用 activeCount 方法來估計數(shù)組應該有多大,但是如果數(shù)組太短而無法容納所有線程,那么額外的線程將被忽略。 如果獲取此線程組中的每個活動線程至關重要,則調用者應驗證返回的 int 值是否嚴格小于列表的長度。
由于此方法中固有的競爭條件,建議僅將該方法用于調試和監(jiān)視目的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 將線程列表放入其中的數(shù)組 |
recurse | 如果為true,遞歸枚舉該線程組的所有子組 |
返回:
放入數(shù)組的線程數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | if checkAccess判斷當前線程不能訪問這個線程組 |
public int activeGroupCount()
返回此線程組及其子組中活動組數(shù)的估計值。 遞歸迭代此線程組中的所有子組。
返回的值只是一個估計值,因為在此方法遍歷內部數(shù)據(jù)結構時線程組的數(shù)量可能會動態(tài)變化。 此方法主要用于調試和監(jiān)視目的。
返回:
以此線程組為祖先的活動線程組的數(shù)量
public int enumerate(ThreadGroup[] list)
將對該線程組及其子組中每個活動子組的引用復制到指定的數(shù)組中。
此方法的調用與調用的行為方式完全相同
enumerate(list, true)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 將線程組列表放入其中的數(shù)組 |
返回:
放入數(shù)組的線程組數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | if checkAccess判斷當前線程不能訪問這個線程組 |
public int enumerate(ThreadGroup[] list, boolean recurse)
將對該線程組中每個活動子組的引用復制到指定的數(shù)組中。 如果 recurse 為真,則此方法遞歸枚舉此線程組的所有子組,并且還包括對這些子組中每個活動線程組的引用。
應用程序可能會使用 activeGroupCount 方法來估計數(shù)組應該有多大,但是如果數(shù)組太短而無法容納所有線程組,那么額外的線程組將被忽略。 如果獲取此線程組中的每個活動子組至關重要,則調用者應驗證返回的 int 值是否嚴格小于列表的長度。
由于此方法中固有的競爭條件,建議僅將該方法用于調試和監(jiān)視目的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 將線程組列表放入其中的數(shù)組 |
recurse | 如果為true,遞歸枚舉所有子組 |
返回:
放入數(shù)組的線程組數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | if checkAccess判斷當前線程不能訪問這個線程組 |
@Deprecated public final void stop()
已棄用。 這種方法本質上是不安全的。
停止此線程組中的所有線程。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
然后,此方法在此線程組及其所有子組中的所有線程上調用 stop 方法。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果不允許當前線程訪問該線程組或線程組中的任何線程。 |
public final void interrupt()
中斷此線程組中的所有線程。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
然后,此方法在此線程組及其所有子組中的所有線程上調用中斷方法。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果不允許當前線程訪問該線程組或線程組中的任何線程。 |
@Deprecated public final void suspend()
已棄用。 這種方法本質上容易死鎖。
掛起該線程組中的所有線程。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
然后,此方法在此線程組及其所有子組中的所有線程上調用掛起方法。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果不允許當前線程訪問該線程組或線程組中的任何線程。 |
@Deprecated public final void resume()
已棄用。 此方法僅與 Thread.suspend 和 ThreadGroup.suspend 一起使用,這兩種方法都已被棄用,因為它們本身就容易死鎖。
恢復此線程組中的所有線程。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
然后,此方法在此線程組及其所有子組中的所有線程上調用 resume 方法。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果不允許當前線程訪問該線程組或線程組中的任何線程。 |
public final void destroy()
銷毀此線程組及其所有子組。 此線程組必須為空,表示該線程組中的所有線程都已停止。
首先,調用該線程組的 checkAccess 方法,不帶參數(shù); 這可能會導致安全異常。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalThreadStateException | 如果線程組不為空或線程組已被銷毀。 |
SecurityException | 如果當前線程不能修改這個線程組。 |
public void list()
將有關此線程組的信息打印到標準輸出。 此方法僅對調試有用。
public void uncaughtException(Thread t, Throwable e)
當此線程組中的線程由于未捕獲的異常而停止并且該線程沒有安裝特定的 Thread.UncaughtExceptionHandler 時,由 Java 虛擬機調用。
ThreadGroup 的 uncaughtException 方法執(zhí)行以下操作:
應用程序可以在 ThreadGroup 的子類中覆蓋此方法,以提供對未捕獲異常的替代處理。
指定者:
接口 Thread.UncaughtExceptionHandler 中的 uncaughtException
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
t | 即將退出的線程。 |
e | 未捕獲的異常。 |
@Deprecated public boolean allowThreadSuspension(boolean b)
已棄用。 此調用的定義取決于已棄用的suspend()。 此外,從未指定此調用的行為。
VM 使用它來控制 lowmem 隱式掛起。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 允許或禁止暫停的布爾值 |
返回:
true on success
public String toString()
返回此線程組的字符串表示形式。
覆蓋:
類 Object 中的 toString
返回:
此線程組的字符串表示形式。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: