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
   159   160   161   162   163   164   165   166   167   168   169