В классе 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() Приостановка текущего потока для того чтобы управление было передано другому потоку