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