Page 237 - 6571
P. 237
Таблиця 2.1 – Значення, що повертаються методом getState()
Значення Стан
State.NEW Потік ще не розпочав виконання
Потік в даний час виконується або поч-
State.RUNNABLE не виконуватися, коли отримає доступ
до процесора
Потік призупинив виконання на певний
проміжок часу, наприклад, після викли-
State.TIMED_WAITING ку методу sleep(). Потік переходить
також в даний стан при виклику методу
wait() або join()
Потік призупинив виконання, оскільки
він очікує на певну дію. Наприклад, ви-
State.WAITING
клик методів wait() або join(), які
виводять потік із стану очікування
Потік призупинив виконання, оскільки
State.BLOCKED
очікує отримання блокування
State.TERMINATED Потік закінчив виконання
Рисунок 2.1 – Зв’язки між станами в яких може перебувати потік
Оскільки стан потоку може змінитися після виклику методу
getState(), то в залежності від обставин, стан, отриманий при
виклику методу getState(), за короткий проміжок часу (квант
часу) може не відображати фактичний стан потоку. З цієї та ін-
ших причин метод getState() не призначений для керування
синхронізацією потоків. Він, насамперед, використовується при
налагодженні або для профілювання характеристик потоку під
час виконання.
236