Класс Thread
В классе Thread определены три поля, несколько конструкторов и большое количество методов, предназначенных для работы с потоками.
С помощью конструкторов можно создавать потоки различными способами, указывая при необходимости для них имя и группу. Имя предназначено для идентификации потока и является необязательным атрибутом. Что же касается групп, то они предназначены для организации защиты потоков друг от друга в рамках одного приложения.
Методы класса Thread предоставляют все необходимые возможности для управления потоками, в том числе для их синхронизации.
Три статических поля предназначены для назначения приоритетов потокам.
Поля |
|
int |
NORM_PRIORITYНормальный |
int |
MAX_PRIORITYМаксимальный |
int |
МинимальныйMIN_PRIORITY |
Конструкторы |
Thread()Создание нового объекта Thread |
Thread(Runnable target)Создвание нового объекта Thread с указанием объекта, для которого будет вызываться метод run |
Thread(Runnable target, String name)Аналогично предыдущему, но дополнительно задается имя нового объекта Thread |
Thread(String name)Создание объекта Thread с указанием его имени |
Thread(ThreadGroup group, Runnable target);Создание нового объекта Thread с указанием группы потока и объекта, для которого вызывается метод run |
Thread(ThreadGroup group, Runnable target, String name)Аналогично предыдущему, но дополнительно задается имя нового объекта Thread |
Thread(ThreadGroup group, String name)Создание нового объекта Thread с указанием группы потока и имени объекта |
Методы |
|
int |
activeCount()Текущее количество активных потоков в группе, к которой принадлежит поток |
void |
checkAccesss()Текущему потоку разрешается изменять объект Thread |
int |
countStackFrames()Определение количества фреймов в стеке |
Thread |
currentThread()Определение текущего работающего потока |
void |
destroy()Принудительное завершение работы потока |
void |
dumpStack()Вывод текущего содержимого стека для отладки |
int |
enumerate(Thread tarray[])Получение всех объектов Tread данной группы |
String |
getName()Определение имени потока |
int |
getPriority()Определение текущего приоритета потока |
ThreadGroup |
getThreadGroup()Определение группы, к которой принадлежит поток |
void |
interrupt()Прерывание потока |
boolean |
interrupted()Определение, является ли поток прерванным |
boolean |
isAlive()Определение, выполняется поток или нет |
boolean |
isDaemon()Определение, является ли поток демоном |
boolean |
isInterrupted()Определение, является ли поток прерванным |
void |
join()Ожидание завершения потока |
void |
join(long millis)Ожидание завершения потока в течение заданного времени. Время задается в миллисекундах |
void |
join(long millis, int nanos)Ожидание завершения потока в течение заданного времени. Время задается в миллисекундах и наносекундах |
void |
resume()Запуск временно приостановленного потока |
void |
setDaemon(boolean on)Метод вызывается в том случае, если поток был создан как объект с интерфейсом Runnable run() |
void |
setDaemon(boolean on)Установка для потока режима демона |
void |
setName(String name)Устаовка имени потока |
void |
setPriority(int newPriority)Установка приоритета потока |
void |
sleep(long millis)Задержка потока на заднное время. Время задается в миллисекундах и наносекундах |
void |
sleep(long millis, int nanos)Задержка потока на заднное время. Время задается в миллисекундах и наносекундах |
void |
start()Запуск потока на выполнение |
void |
stop()Остановка выполнения потока |
void |
stop(Throwable obj)Аварийная остановка выполнения потока с заданным исключением |
void |
suspend()Приостановка потока |
void |
yield()Приостановка текущего потока для того чтобы управление было передано другому потоку |
String |
toString()Строка, представляющая объект-поток |