Page 164 - 6571
P. 164
перервано, на екран за допомогою методу println() виведеться
відповідне повідомлення У реальних програмах об’єкт винятку
повинен бути обов’язково перехоплений та оброблений.
За замовчуванням ім’я головного потоку та ім’я групи
потоків, до якої він належить – main, а його пріоритет дорівнює
5. Група потоків – це структура даних, яка управляє станом
множини потоків в цілому. Після того як ім’я потоку змінено,
значення змінної thread виводиться знову. Цього разу
відображається нове ім’я потоку.
Метод sleep() змушує потік, з якого він був викликаний,
призупинити виконання на вказану кількість мілісекунд. Також
метод sleep() дозволяє задати період затримки в мілісекундах і
наносекундах, проте дана форма може застосовуватися тільки в
середовищах, які передбачають задання часових проміжків в
наносекундах.
Як уже зазначалося, потік може перебувати в декількох
різних станах. Поточний стан потоку можна отримати,
викликавши метод getState(), визначений у класі Thread.
Метод повертає значення типу Thread.State, яке вказує на стан
потоку в момент його виклику. Перерахування State визначене
в класі Thread і в ньому містяться значення перераховані в
таблиці 18.1.
Таблиця 18.1 – Значення, що повертаються методом
getState()
Значення Стан
Потік призупинив виконання, оскільки очі-
BLOCKED
кує отримання блокування
NEW Потік ще не розпочав виконання
Потік в даний час виконується або почне
RUNNABLE виконуватися, коли отримає доступ до про-
цесора
TERMINATED Потік закінчив виконання
Потік призупинив виконання на певний
проміжок часу, наприклад, після виклику
TIMED WAITING
методу sleep(). Потік переходить також в
даний стан при виклику методу wait() або
163