» Язык
java
» Главная
страница
» Вернуться
к содержанию
Сводка
функций программного интерфейса
легковесных процессов
Методы
класса
Методы
класса — это статические методы,
которые можно вызывать непосредственно
с именем класса Thread.
currentThread
Статический
метод currentThread возвращает
объект Thread, выполняющийся
в данный момент.
yield
Вызов
метода yield приводит к тому,
что исполняющая система переключает
контекст с текущего на следующий
доступный подпроцесс. Это один
из способов гарантировать, что
низкоприоритетные подпроцессы
когда-нибудь получат управление.
sleep(int
n)
При
вызове метода sleep исполняющая
система блокирует текущий подпроцесс
на n миллисекунд. После того,
как этот интервал времени закончится,
подпроцесс снова будет способен
выполняться. В большинстве исполняющих
систем Java системные часы не
позволяют точно выдерживать
паузы короче, чем 10 миллисекунд.
Методы
объекта
start
Метод
start говорит исполняющей системе
Java, что необходимо создать
системный контекст подпроцесса
и запустить этот подпроцесс.
После вызова этого метода в
новом контексте будет вызван
метод run вновь созданного подпроцесса.
Вам нужно помнить о том, что
метод start с данным объектом
можно вызвать только один раз.
run
Метод
run — это тело выполняющегося
подпроцесса. Это — единственный
метод интерфейса Runnable. Он
вызывается из метода start после
того, как исполняющая среда
выполнит необходимые операции
по инициализации нового подпроцесса.
Если происходит возврат из метода
run, текущий подпроцесс останавливается.
stop
Вызов
метода stop приводит к немедленной
остановке подпроцесса. Это —
способ мгновенно прекратить
выполнение текущего подпроцесса,
особенно если метод выполняется
в текущем подпроцессе. В таком
случае строка, следующая за
вызовом метода stop, никогда
не выполняется, поскольку контекст
подпроцесса “умирает” до того,
как метод stop возвратит управление.
Более аккуратный способ остановить
выполнение подпроцесса — установить
значение какой-либо переменной-флага,
предусмотрев в методе run код,
который, проверив состояние
флага, завершил бы выполнение
подпроцесса.
suspend
Метод
suspend отличается от метода
stop тем, что метод приостанавливает
выполнение подпроцесса, не разрушая
при этом его системный контекст.
Если выполнение подпроцесса
приостановлено вызовом suspend,
вы можете снова активизировать
этот подпроцесс, вызвав метод
resume.
resume
Метод
resume используется для активизации
подпроцесса, приостановленного
вызовом suspend. При этом не
гарантируется, что после вызова
resume подпроцесс немедленно
начнет выполняться, поскольку
в этот момент может выполняться
другой более высокоприоритетный
процесс. Вызов resume лишь делает
подпроцесс способным выполняться,
а то, когда ему будет передано
управление, решит планировщик.
setPriority(int
p)
Метод
setPriority устанавливает приоритет
подпроцесса, задаваемый целым
значением передаваемого методу
параметра. В классе Thread есть
несколько предопределенных приоритетов-констант:
MIN_PRIORITY, NORM_PRIORITY
и MAX_PRIORITY, соответствующих
соответственно значениям 1,
5 и 10. Большинство пользовательских
приложений должно выполняться
на уровне NORM_PRIORITY плюс-минус
1. Приоритет фоновых заданий,
например, сетевого ввода-вывода
или перерисовки экрана, следует
устанавливать в MIN_PRIORITY.
Запуск подпроцессов на уровне
MAX_PRIORITY требует осторожности.
Если в подпроцессах с таким
уровнем приоритета отсутствуют
вызовы sleep или yield, может
оказаться, что вся исполняющая
система Java перестанет реагировать
на внешние раздражители.
SetPriority
Этот
метод возвращает текущий приоритет
подпроцесса — целое значение
в диапазоне от 1 до 10.
setName(String
name)
Метод
setName присваивает подпроцессу
указанное в параметре имя. Это
помогает при отладке программ
с параллельными подпроцессами.
Присвоенное с помощью setName
имя будет появляться во всех
трассировках стека, которые
выводятся при получении интерпретатором
неперехваченного исключения.
getName
Метод
getName возвращает строку с
именем подпроцесса, установленным
с помощью вызова setName.
Простые
в использовании встроенные в
исполняющую среду и в синтаксис
Java легковесные процессы —
одна из наиболее веских причин,
по которым стоит изучать этот
язык. Освоив однажды параллельное
программирование, вы уже никогда
не захотите возвращаться назад
к программированию с помощью
модели, управляемой событиями.
Следующий
урок
|