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
   231   232   233   234   235   236   237   238   239   240   241