Page 238 - 6253
P. 238

потоку  може  бути  поновлено;  потік  може  бути  заблокований  під  час  очікування

            певного ресурсу; у будь-який момент часу потік може бути перерваний; одного разу

            перерваний потік більше не може бути відновлений.

                  Під час запуску Java-програми, негайно починає виконуватися її головний потік

            (main  thread).  Головний  потік  є  важливим  з  двох  причин:  1)  від  даного  потоку

            породжуються  всі  «дочірні» потоки; 2) часто  він повинен бути останнім потоком,

            що завершує виконання програми, оскільки може виконувати різні завершальні дії.

                  Незважаючи  на  те,  що  головний  потік  створюється  автоматично  при  запуску

            програми,  ним  можна  керувати  через  об’єкт  класу  Thread.  Для  цього  необхідно

            отримати  посилання  на  нього,  виконавши  виклик  методу  currentThread(),  який  є

            відкритим  статичним  методом  класу  Thread.  Даний  метод  повертає  посилання  на

            потік, з якого він був викликаний. Отримавши посилання на головний потік, можна

            керувати ним точно так само, як і будь-яким іншим потоком. Розглянемо наступний

            приклад представлений у лістингу 10.1.

                                                           Лістинг 10.1 – Керування головним потоком

                  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. Далі програма відображає інформацію про



                                                              237
   233   234   235   236   237   238   239   240   241   242   243