Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.ThreadGroup
Группы потока обеспечивают способ управлять потоками и наложить границы безопасности; например, поток может всегда создавать новый поток в пределах своей собственной группы потока, но создание потока в другой группе потока требует одобрения менеджера безопасности (§20.17), так что делает создание группы нового потока.
public classУ каждой группы потока есть максимальный приоритет. Приоритет потока не может быть установлен (§20.20.23) выше чем максимальный приоритет его группы потока.ThreadGroup
{ publicThreadGroup
(String name) throws SecurityException; publicThreadGroup
(ThreadGroup parent, String name) throwsNullPointerExpression
, SecurityException,IllegalThreadStateException
; public StringtoString
(); public final voidcheckAccess
(); public final StringgetName
(); public final ThreadGroupgetParent
(); public final booleanparentOf
(ThreadGroup g); public final voidstop
() throwsSecurityException
; public final voidsuspend
() throwsSecurityException
; public final voidresume
() throwsSecurityException
; public final voiddestroy
() throwsSecurityException
,IllegalThreadStateException
; public final intgetMaxPriority
(); public final voidsetMaxPriority
(intnewMaxPriority
) throwsSecurityException
, IllegalArgumentException; public final booleanisDaemon
(); public final voidsetDaemon
(boolean daemon) throwsSecurityException
; public intthreadsCount
(); public intallThreadsCount
() ; public intgroupsCount
(); public intallGroupsCount
(); public Thread[]threads
(); public Thread[]allThreads
(); public ThreadGroup[]groups
(); public ThreadGroup[]allGroups
(); public intactiveCount
(); // deprecated public intactiveGroupCount
(); // deprecated public intenumerate
(Thread list[]); // deprecated public intenumerate
(Thread list[], // deprecated boolean recurse); public intenumerate
(ThreadGroup list[]); // deprecated public intenumerate
(ThreadGroup list[], // deprecated boolean recurse); public voidlist
(); public voiduncaughtException
(Thread t, Throwable e); }
Каждая группа потока может или не может быть отмечена как демон. Когда новое ThreadGroup
объект создается, недавно создаваемая группа потока отмечается как группа потока демона, если и только если группа потока, которой это принадлежит, является в настоящий момент группой потока демона. Но daemonhood группового Г потока может быть изменен в любое время, вызывая setDaemon
метод ThreadGroup
объект, который представляет Г (при условии, что менеджер безопасности (§20.17.12) одобряет выполнение setDaemon
работа).
У каждой группы потока есть имя, которое является a String
, в целях идентификации. Больше чем у одной группы потока может быть то же самое имя.
Создание группы потока требует одобрения checkAccess
метод (§20.21.4) его предложенной родительской группы потока, который вперед решение к менеджеру безопасности (§20.17.11).
20.21.1 public
ThreadGroup
(String name)
throws SecurityException
Во-первых, checkAccess
метод (§20.21.4) группы потока, которой принадлежит текущий поток, вызывают без параметров.
Этот конструктор инициализирует недавно создаваемый ThreadGroup
возразите так, чтобы у этого было указанное name
как его имя и принадлежит той же самой группе потока как поток, который создает группу нового потока.
Этот конструктор имеет точно тот же самый эффект как явный вызов конструктора this(Thread.currentThread().getThreadGroup(),
name)
(§20.21.2).
20.21.2 public
ThreadGroup
(ThreadGroup parent, String name)
throws NullPointerExpression
, SecurityException, IllegalThreadStateException
Во-первых, checkAccess
метод (§20.21.4) parent
группу потока вызывают без параметров.
Если parent
null
, тогда a NullPointerExpression
бросается. Если parent
a ThreadGroup
это было уничтожено методом destroy
(§20.21.11), затем IllegalThreadStateException
бросается.
Этот конструктор инициализирует недавно создаваемый ThreadGroup
возразите так, чтобы у этого было указанное name
как его имя и принадлежит группе потока, представленной parent
.
Максимальный приоритет для недавно создаваемой группы потока устанавливается равный максимальному приоритету parent
. Метод setMaxPriority
(§20.21.13) может использоваться, чтобы изменить максимальный приоритет на нижнее значение.
Недавно создаваемая группа потока первоначально отмечается как являющийся группой потока демона если и только parent
группа потока демона. Метод setDaemon
(§20.21.15) может использоваться, чтобы измениться, является ли группа потока группой потока демона.
20.21.3 public String
toString
()
Возвращенное значение является связью следующих шести строк:
"[name="
",maxpri="
"]"
Переопределения toString
метод Object
(§20.1.3).
20.21.4 public final void
checkAccess
()
Если есть менеджер безопасности, checkAccess
метод (§20.17.12) вызывают с этим ThreadGroup
возразите как его параметр. Это может привести к броску, к текущему потоку, a SecurityException
.
Этот метод вызывают методы stop
(§20.21.8), suspend
(§20.21.9), resume
(§20.21.10), destroy
(§20.21.11), setMaxPriority
(§20.21.13), и setDaemon
(§20.21.15).
20.21.5 public final String
getName
()
Текущее имя этого ThreadGroup
объект возвращается как a String
.
20.21.6 public final ThreadGroup
getParent
()
Этот метод возвращается ThreadGroup
объект, который представляет группу потока, которой принадлежит эта группа потока. Если эта группа потока является системной группой потока, которая является в корне групповой иерархии потока, то null
возвращается.
20.21.7 public final boolean
parentOf
(ThreadGroup g)
Этот метод возвраты true
если и только если любая эта группа потока g
или этот метод true
когда применено к родитель g
. Другими словами этот метод говорит, является ли эта группа потока предком g
или возможно g
непосредственно.
(Этот метод возможно неверно называется; более точное, если бы неуклюжий и глубокомысленный, имя было бы parentOfReflexiveTransitiveClosure
.)
20.21.8 public final void
stop
() throws SecurityException
Во-первых, checkAccess
метод (§20.21.4) этого ThreadGroup
объект вызывают без параметров. Это может привести к a SecurityException
будучи брошенным (в текущем потоке).
Каждый поток в этой группе потока или любой из ее подгрупп останавливается. Более точно, метод stop
требуется каждый ThreadGroup
и каждый Thread
(§20.20.15), который принадлежит этому ThreadGroup
.
20.21.9 public final void
suspend
() throws SecurityException
Во-первых, checkAccess
метод (§20.21.4) этого ThreadGroup
объект вызывают без параметров. Это может привести к a SecurityException
будучи брошенным (в текущем потоке).
Каждый поток в этой группе потока или любой из ее подгрупп приостанавливается. Более точно, метод suspend
требуется каждый ThreadGroup
и каждый Thread
(§20.20.17), который принадлежит этому ThreadGroup
.
20.21.10 public final void
resume
() throws SecurityException
Во-первых, checkAccess
метод (§20.21.4) этого ThreadGroup
объект вызывают без параметров. Это может привести к a SecurityException
будучи брошенным (в текущем потоке).
Каждый поток в этой группе потока или любой из ее подгрупп возобновляется. Более точно, метод resume
требуется каждый ThreadGroup
и каждый Thread
(§20.20.18), который принадлежит этому ThreadGroup
.
20.21.11 public final void
destroy
()
throws SecurityException, IllegalThreadStateException
Во-первых, checkAccess
метод (§20.21.4) этого ThreadGroup
объект вызывают без параметров. Это может привести к a SecurityException
будучи брошенным (в текущем потоке).
Эта группа потока уничтожается. Если это было уже уничтожено, или если любые потоки принадлежат этому непосредственно, то IllegalThreadStateException
бросается. Иначе, этот метод вызывают рекурсивно для каждой группы потока, которая принадлежит этой группе потока, и эта группа потока удаляется из ее родительской группы потока.
Группа потока, которая в настоящий момент отмечается как группа потока демона, уничтожается автоматически, если оба из следующих условий являются истиной:
20.21.12 public final int
getMaxPriority
()
Текущий максимальный приоритет этого ThreadGroup
объект возвращается.
20.21.13 public final void
setMaxPriority
(int newMaxPriority
)
throws SecurityException
, IllegalArgumentException
Во-первых, checkAccess
метод (§20.21.4) этого ThreadGroup
объект вызывают без параметров. Это может привести к a SecurityException
будучи брошенным (в текущем потоке).
Если newMaxPriority
параметром являются меньше чем MIN_PRIORITY
(§20.20.1) или больше чем MAX_PRIORITY
(§20.20.2), затем IllegalArgumentException
бросается.
Иначе, приоритет этого ThreadGroup
объект устанавливается в меньшие из указанных newMaxPriority
и максимальный разрешенный приоритет (§20.21.12) родителя этой группы потока (§20.21.12). (Если эта группа потока является системной группой потока, у которой нет никакого родителя, тогда его максимальный приоритет просто устанавливается в newMaxPriority
.) Затем этот метод вызывают рекурсивно, с newMaxPriority
как его параметр, для каждой группы потока, которая принадлежит этой группе потока.
20.21.14 public final boolean
isDaemon
()
Результат true
если и только если эта группа потока в настоящий момент отмечается как группа потока демона.
20.21.15 public final void
setDaemon
(boolean daemon)
throws SecurityException
Во-первых, checkAccess
метод (§20.21.4) этого ThreadGroup
объект вызывают без параметров. Это может привести к a SecurityException
будучи брошенным (в текущем потоке).
Эта группа потока отмечается как являющийся группой потока демона, если параметр true
, и как не являющийся демоном распараллеливают группу, если параметр false
.
20.21.16 public int
threadsCount
()
Этот метод возвращает число потоков, которые непосредственно принадлежат этой группе потока.
20.21.17 public int
allThreadsCount
()
Этот метод возвращает число потоков, которые принадлежат этой группе потока или любой из ее подгрупп.
20.21.18 public int
groupsCount
()
Этот метод возвращает число групп потока, которые непосредственно принадлежат этой группе потока.
20.21.19 public int
allGroupsCount
()
Этот метод возвращает число групп потока, которые принадлежат этой группе потока или любой из ее подгрупп.
20.21.20 public Thread[]
threads
()
Этот метод возвращает недавно создаваемый массив, содержащий Thread
объекты для всех потоков, которые непосредственно принадлежат этой группе потока.
20.21.21 public Thread[]
allThreads
()
Этот метод возвращает недавно создаваемый массив, содержащий Thread
объекты для всех потоков, которые принадлежат этой группе потока или любой из ее подгрупп.
20.21.22 public ThreadGroup[]
groups
()
Этот метод возвращает недавно создаваемый массив, содержащий ThreadGroup
объекты для всех групп потока, которые непосредственно принадлежат этой группе потока.
20.21.23 public ThreadGroup[]
allGroups
()
Этот метод возвращает недавно создаваемый массив, содержащий ThreadGroup
объекты для всех групп потока, которые принадлежат этой группе потока или любой из ее подгрупп.
20.21.24 public int
activeCount
()
[Этот метод осуждается для использования в новом коде после того, как версия 1.1 Java становится доступной. Используйте эквивалентный метод allThreadsCount
вместо этого.]
20.21.25 public int
activeGroupCount
()
[Этот метод осуждается для использования в новом коде после того, как версия 1.1 Java становится доступной. Используйте эквивалентный метод allGroupsCount
вместо этого.]
20.21.26 public int
enumerate
(Thread list[])
[Этот метод осуждается для использования в новом коде после того, как версия 1.1 Java становится доступной. Используйте метод allThreads
вместо этого.]
20.21.27 public int
enumerate
(Thread list[], boolean recurse)
[Этот метод осуждается для использования в новом коде после того, как версия 1.1 Java становится доступной. Используйте метод threads
или allThreads
вместо этого.]
20.21.28 public int
enumerate
(ThreadGroup list[])
[Этот метод осуждается для использования в новом коде после того, как версия 1.1 Java становится доступной. Используйте метод allGroups
вместо этого.]
20.21.29 public int
enumerate
(ThreadGroup list[], boolean recurse)
[Этот метод осуждается для использования в новом коде после того, как версия 1.1 Java становится доступной. Используйте метод groups
или allGroups
вместо этого.]
20.21.30 public void
list
()
Этот метод печатает подробное описание этой группы потока к потоку вывода System.out
(§20.18.2). Это предназначается как удобная утилита для того, чтобы отладить.
Вывод является серией строк; каждая строка содержит некоторые пробелы (для добавления отступа) сопровождаемый toString
представление одного потока (§20.20.11) или одна группа потока (§20.21.3).
Первая строка дает toString
представление для этой группы потока, без пробелов добавления отступа. Следующие строки тогда сгенерированы рекурсивным правилом: всякий раз, когда строка печатается для группового Г потока с n ведущие пробелы, это сразу сопровождалось одной строкой для каждого потока, который непосредственно принадлежит Г с пробелами добавления отступа; тогда одна строка печатается для каждой группы потока, которая непосредственно принадлежит Г, с пробелами добавления отступа, используя рекурсивный случай.
20.21.31 public void
uncaughtException
(Thread t, Throwable e)
Общий контракт uncaughtException
это, это вызывают всякий раз, когда поток, который принадлежит непосредственно этой группе потока, умирает, потому что исключение было добавлено, что поток и не поймал. Параметры Thread
объект для рассматриваемого потока и Throwable
объект, который был брошен. uncaughtException
метод может тогда принять любые соответствующие меры.
Звонок uncaughtException
выполняется потоком, который был не в состоянии поймать исключение, таким образом, t
текущий поток. Звонок uncaughtException
последнее действие потока прежде, чем это умрет. Если звонок uncaughtException
непосредственно результаты в (непойманном) исключении, этот факт игнорируется, и поток просто продолжает умирать.
Метод uncaughtException
определенный классом ThreadGroup
предпринимает одни из двух мер. Если у этой группы потока есть родительская группа потока, то этот метод вызывается для той родительской группы потока с теми же самыми параметрами. Если эта группа потока является системной группой потока (у которого нет никакого родителя), то, если исключение e
не экземпляр ThreadDeath
(§20.22), трассировка стека (§20.22.6) для e
печатается на потоке вывода ошибок, который является значением поля System.err
(§20.18.3).
Подклассы ThreadGroup
может переопределить uncaughtException
метод.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com