Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler
Потоку позволяют получить доступ к информации о ее собственной группе потока, но не к информации о доступе о ее групповой родительской группе потока потока или любых других группах потока.
Конструктор и Описание |
---|
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()
Возвращает максимальный приоритет этой группы потока.
|
Строка |
getName()
Возвращает имя этой группы потока.
|
ThreadGroup |
getParent()
Возвращает родителя этой группы потока.
|
void |
interrupt()
Прерывания все потоки в этой группе потока.
|
boolean |
isDaemon()
Тесты, если эта группа потока является группой потока демона.
|
boolean |
isDestroyed()
Тесты, если эта группа потока была уничтожена.
|
void |
list()
Информация о печатных изданиях об этой группе потока к стандартному выводу.
|
boolean |
parentOf(ThreadGroup g)
Тесты, если эта группа потока является или групповым параметром потока или одной из его групп потока предка.
|
void |
resume()
Осуждаемый.
Этот метод используется исключительно в соединении с Thread.suspend и ThreadGroup.suspend, оба из которых были осуждены, поскольку они являются по сути склонными к мертвой блокировке. См.
Thread.suspend() для деталей. |
void |
setDaemon(boolean daemon)
Изменяет состояние демона этой группы потока.
|
void |
setMaxPriority(int pri)
Устанавливает максимальный приоритет группы.
|
void |
stop()
Осуждаемый.
Этот метод по сути опасен. См.
Thread.stop() для деталей. |
void |
suspend()
Осуждаемый.
Этот метод является по сути склонным к мертвой блокировке. См.
Thread.suspend() для деталей. |
Строка |
toString()
Возвращает строковое представление этой группы Потока.
|
void |
uncaughtException(Thread t, Throwable e)
Вызванный виртуальной машиной Java, когда у потока в этой группе потока остановки из-за непойманного исключения, и поток нет определенного
Thread.UncaughtExceptionHandler установленный. |
public ThreadGroup(String name)
checkAccess
метод родительской группы потока вызывают без параметров; это может привести к исключению безопасности.
name
- имя группы нового потока.SecurityException
- если текущий поток не может создать поток в указанной группе потока.checkAccess()
public ThreadGroup(ThreadGroup parent, String name)
checkAccess
метод родительской группы потока вызывают без параметров; это может привести к исключению безопасности.
parent
- родительская группа потока.name
- имя группы нового потока.NullPointerException
- если групповой параметр потока null
.SecurityException
- если текущий поток не может создать поток в указанной группе потока.SecurityException
, checkAccess()
public final String getName()
public final ThreadGroup getParent()
Во-первых, если родитель не null
, checkAccess
метод родительской группы потока вызывают без параметров; это может привести к исключению безопасности.
null
.SecurityException
- если текущий поток не может изменить эту группу потока.checkAccess()
, SecurityException
, RuntimePermission
public final int getMaxPriority()
setMaxPriority(int)
public final boolean isDaemon()
true
если эта группа потока является группой потока демона; false
иначе.public boolean isDestroyed()
public final void setDaemon(boolean daemon)
Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
Группа потока демона автоматически уничтожается, когда ее последний поток останавливается, или ее последняя группа потока уничтожается.
daemon
- если true
, метки эта группа потока как группа потока демона; иначе, метки эта группа потока как нормальный.SecurityException
- если текущий поток не может изменить эту группу потока.SecurityException
, checkAccess()
public final void setMaxPriority(int pri)
Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
Если pri
параметром являются меньше чем Thread.MIN_PRIORITY
или больше чем Thread.MAX_PRIORITY
, максимальный приоритет группы остается неизменным.
Иначе, приоритет этого объекта ThreadGroup устанавливается в меньшие из указанных pri
и максимальный разрешенный приоритет родителя этой группы потока. (Если эта группа потока является системной группой потока, у которой нет никакого родителя, тогда его максимальный приоритет просто устанавливается в pri
.) Затем этот метод вызывают рекурсивно, с pri
как его параметр, для каждой группы потока, которая принадлежит этой группе потока.
pri
- новый приоритет группы потока.SecurityException
- если текущий поток не может изменить эту группу потока.getMaxPriority()
, SecurityException
, checkAccess()
public final boolean parentOf(ThreadGroup g)
g
- группа потока.true
если эта группа потока является групповым параметром потока или одной из его групп потока предка; false
иначе.public final void checkAccess()
Если есть менеджер безопасности, checkAccess
метод вызывают с этой группой потока как ее параметр. Это может привести к броску a SecurityException
.
SecurityException
- если текущему потоку не позволяют получить доступ к этой группе потока.SecurityManager.checkAccess(java.lang.ThreadGroup)
public int activeCount()
Возвращенное значение является только оценкой, потому что число потоков может измениться динамически, в то время как этот метод пересекает внутренние структуры данных, и мог бы влияться присутствием определенных системных потоков. Этот метод предназначается прежде всего для отладки и контроля целей.
public int enumerate(Thread[] list)
Вызов этого метода ведет себя точно таким же образом как вызов
перечислить(list, true)
list
- массив, в который можно поместить список потоковSecurityException
- если checkAccess решает, что текущий поток не может получить доступ к этой группе потокаpublic int enumerate(Thread[] list, boolean recurse)
recurse
true
, этот метод рекурсивно перечисляет все подгруппы этой группы потока, и ссылки на каждый активный поток в этих подгруппах также включаются. Если массив слишком короток, чтобы содержать все потоки, дополнительные потоки тихо игнорируются. Приложение могло бы использовать activeCount метод, чтобы получить оценку того, насколько большой массив должен быть, однако если массив слишком короток, чтобы содержать все потоки, дополнительные потоки тихо игнорируются. Если является критическим получить каждый активный поток в этой группе потока, вызывающая сторона должна проверить, что возвращенное международное значение является строго меньше чем длина list
.
Из-за свойственного состояния состязания в этом методе, рекомендуется, чтобы метод только использовался для отладки и контроля целей.
list
- массив, в который можно поместить список потоковrecurse
- если true
, рекурсивно перечислите все подгруппы этой группы потокаSecurityException
- если checkAccess решает, что текущий поток не может получить доступ к этой группе потокаpublic int activeGroupCount()
Возвращенное значение является только оценкой, потому что число групп потока может измениться динамически, в то время как этот метод пересекает внутренние структуры данных. Этот метод предназначается прежде всего для отладки и контроля целей.
public int enumerate(ThreadGroup[] list)
Вызов этого метода ведет себя точно таким же образом как вызов
перечислить(list, true)
list
- массив, в который можно поместить список групп потокаSecurityException
- если checkAccess решает, что текущий поток не может получить доступ к этой группе потокаpublic int enumerate(ThreadGroup[] list, boolean recurse)
recurse
true
, этот метод рекурсивно перечисляет все подгруппы этой группы потока, и ссылки на каждую активную группу потока в этих подгруппах также включаются. Приложение могло бы использовать activeGroupCount метод, чтобы получить оценку того, насколько большой массив должен быть, однако если массив слишком короток, чтобы содержать все группы потока, дополнительные группы потока тихо игнорируются. Если является критическим получить каждую активную подгруппу в этой группе потока, вызывающая сторона должна проверить, что возвращенное международное значение является строго меньше чем длина list
.
Из-за свойственного состояния состязания в этом методе, рекомендуется, чтобы метод только использовался для отладки и контроля целей.
list
- массив, в который можно поместить список групп потокаrecurse
- если true
, рекурсивно перечислите все подгруппыSecurityException
- если checkAccess решает, что текущий поток не может получить доступ к этой группе потока@Deprecated public final void stop()
Thread.stop()
для деталей. Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
Этот метод тогда вызывает stop
метод на всех потоках в этой группе потока и во всех ее подгруппах.
SecurityException
- если текущему потоку не позволяют получить доступ к этой группе потока или какому-либо из потоков в группе потока.SecurityException
, Thread.stop()
, checkAccess()
public final void interrupt()
Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
Этот метод тогда вызывает interrupt
метод на всех потоках в этой группе потока и во всех ее подгруппах.
SecurityException
- если текущему потоку не позволяют получить доступ к этой группе потока или какому-либо из потоков в группе потока.Thread.interrupt()
, SecurityException
, checkAccess()
@Deprecated public final void suspend()
Thread.suspend()
для деталей. Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
Этот метод тогда вызывает suspend
метод на всех потоках в этой группе потока и во всех ее подгруппах.
SecurityException
- если текущему потоку не позволяют получить доступ к этой группе потока или какому-либо из потоков в группе потока.Thread.suspend()
, SecurityException
, checkAccess()
@Deprecated public final void resume()
Thread.suspend()
для деталей. Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
Этот метод тогда вызывает resume
метод на всех потоках в этой группе потока и во всех ее sub группах.
SecurityException
- если текущему потоку не позволяют получить доступ к этой группе потока или какому-либо из потоков в группе потока.SecurityException
, Thread.resume()
, checkAccess()
public final void destroy()
Во-первых, checkAccess
метод этой группы потока вызывают без параметров; это может привести к исключению безопасности.
IllegalThreadStateException
- если группа потока не пуста или если группа потока была уже уничтожена.SecurityException
- если текущий поток не может изменить эту группу потока.checkAccess()
public void list()
public void uncaughtException(Thread t, Throwable e)
Thread.UncaughtExceptionHandler
установленный. uncaughtException
метод ThreadGroup
делает следующее:
uncaughtException
метод того родителя вызывают с теми же самыми двумя параметрами. uncaughtException
метод вызывают с теми же самыми двумя параметрами. Throwable
параметром является экземпляр ThreadDeath
. Если так, ничто специальное не делается. Иначе, сообщение, содержащее имя потока, как возвращено из потока getName
метод, и след стека, используя Throwable
's printStackTrace
метод, печатается к стандартному потоку сообщений об ошибках. Приложения могут переопределить этот метод в подклассах ThreadGroup
обеспечить альтернативную обработку непойманных исключений.
uncaughtException
в интерфейсе Thread.UncaughtExceptionHandler
t
- поток, который собирается выйти.e
- непойманное исключение.@Deprecated public boolean allowThreadSuspension(boolean b)
suspend()
, который осуждается. Далее, поведение этого вызова никогда не определялось.b
- булев, чтобы позволить или отвергнуть приостановку
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92