Page 236 - 6571
P. 236
Додаток 2
ЛАБОРАТОРНА РОБОТА № 2
Керування життєвим циклом потоків у мові Java
Мета: Вивчити основні етапи життєвого циклу,
через які проходить потік, створений засобами мови
Java, та навчитися керувати життєвим циклом потоків
2.1 Теоретичні відомості
Потоки у мові Java можуть перебувати в декількох станах:
потік може виконуватися; він може бути готовий до виконання,
як тільки отримає час центрального процесора; виконуваний по-
тік може бути тимчасово призупинений; виконання призупинено-
го потоку може бути поновлено; потік може бути заблокований
під час очікування певного ресурсу; у будь-який момент часу по-
тік може бути перерваний; одного разу перерваний потік більше
не може бути відновлений.
Поточний стан потоку можна отримати, викликавши метод
getState(), визначений у класі Thread. Метод повертає зна-
чення типу Thread.State, яке вказує на стан потоку в момент
його виклику. Перерахування State визначене в класі Thread і
в ньому містяться значення перераховані в таблиці 2.1.
Наприклад, наступний код визначає, чи знаходиться потік по
імені thrd в стані RUNNABLE під час виклику методу getSta
e().
Thread.State ts = thrd.getState();
if (ts == Thread.State.RUNNABLE)
// вивести інформацію про поточний стан;
Схема подана на рисунку 2.1 демонструє зв’язки між різними
станами.
235