Page 231 - 6571
P. 231

Додаток 1



                                 ЛАБОРАТОРНА РОБОТА № 1

                Створення та запуск власних потоків у мові Java





                  Мета: Навчитися створювати нові потоки засобами мови
                             Java та запускати їх на виконання.


                                        1.1 Теоретичні відомості


                  Модель потоків і її підтримка в мові Java є програмним меха-
            нізмом,  що  спрощує  одночасне  виконання  декількох  операцій  в
            межах однієї програми. Процесор періодично втручається в події,

            виділяючи кожному потоку деякий проміжок часу на його вико-
            нання. Зі сторони потоку все виглядає так, неначе процесор вико-

            ристовується  в  монопольному  режимі,  але  насправді  час  проце-
            сора розділяється між усіма існуючими в програмі потоками (ви-
            няток становить  ситуація, коли програма дійсно виконується на
            багатопроцесорному комп’ютері).

                  Під час запуску Java-програми починає виконуватися її голо-
            вний потік (main thread). Головний потік є важливим з двох

            причин:
                  1) від даного потоку породжуються всі «дочірні» потоки;
                  2) часто він повинен бути останнім потоком, що завершує ви-
                     конання  програми,  оскільки  може  виконувати  різні  завер-

                     шальні дії.
                  Незважаючи на те, що головний потік створюється автомати-
            чно при запуску програми, ним можна керувати через об’єкт кла-

            су Thread. Для цього необхідно отримати посилання на нього,
            виконавши  виклик  методу  currentThread(),  який  є  відкри-
            тим  статичним  методом  класу  Thread.  Даний  метод  повертає

            посилання на потік, з якого він був викликаний.

                  Thread thread = Thread.currentThread();
                  System.out.println("Поточний потік:" +    thre
            d.toString());

                                                        230
   226   227   228   229   230   231   232   233   234   235   236