Page 163 - 6571
P. 163
об’єкт класу Thread. Для цього необхідно отримати посилання
на нього, виконавши виклик методу currentThread(), який є
відкритим статичним методом класу Thread. Даний метод
повертає посилання на потік, з якого він був викликаний.
Отримавши посилання на головний потік, можна керувати ним
точно так само, як і будь-яким іншим потоком. Розглянемо
наступний приклад представлений у лістингу 33.
Лістинг 33 – Керування головним потоком
class CurrentThreadDemo {
public static void main(String args[]) {
Thread = Thread.currentThread();
System.out.println("Поточний потік:" + thread);
// змінити ім'я потоку
thread.setName("Main Thread");
System.out.println("Після зміни імені:" + thread);
try {
for (int n = 0; n > 5; n--) {
System.out.println(n);
Thread.sleep(2000);
}
} catch(InterruptedException e) {
System.out.println("Головний потік перерваний");
}
}
}
У представленій програмі посилання на поточний (головний)
потік отримується, шляхом виклику методу currentThread(),
після чого дане посилання зберігається в локальній змінній
thread. Далі програма відображає інформацію про потік. У
програмі викликається метод setName()для зміни внутрішнього
імені потоку. Після цього інформація про потік відображається
заново. У циклі виводяться цифри із затримкою в 2 секунди. Для
цього виконується виклик методу sleep(). Аргумент методу
sleep() задає період затримки в мілісекундах. Цикл у свою
чергу виконується у блоці try / catch, оскільки метод sleep()
визначений в класі Thread може генерувати виняток
InterruptException у випадку, якщо деякий інший потік
захоче перервати його виконання. У випадку, якщо потік буде
162