Page 61 - 4657
P. 61

Виконуюча  система  Java  у  багато  чому  залежить  від
            використання підпроцесів, і всі її класові бібліотеки написані з
            урахуванням       особливостей     програмування       в    умовах
            рівнобіжного  виконання  підпроцесів.  Java  використовує
            підпроцеси  для  того,  щоб  зробити  середовище  програмування
            асинхронної.  Після  того,  як  підпроцес  запущений,  його
            виконання  можна  тимчасово  призупинити  (suspend).  Якщо
            підпроцес  зупинений  (stop),  відновити  його  виконання
            неможливе.

                  Пріоритети підпроцесів


                 Пріоритети  підпроцесів  -  це  просто  цілі  числа  в  діапазоні
            від 1 до 10 і має сенс тільки співвідношення пріоритетів різних
            підпроцесів.  Пріоритети  ж  використовуються  для  того,  щоб
            вирішити,  коли  потрібно  зупинити  один  підпроцес  і  почати
            виконання  іншого.  Це  називається  переключенням  контексту.
            Правила прості. Підпроцес може добровільно віддати керування
            -  за  допомогою  явного  системного  виклику  при  блокуванні  на
            операціях  вводу-виводу,  або  він  може  бути  припинений
            примусово.  У  першому  випадку  перевіряються  всі  інші
            підпроцеси, і керування передається тому з них, що готовий до
            виконання і має самий високий пріоритет. В другому випадку,
            низькопріоритетний  підпроцес,  незалежно  від  того,  чим  він
            зайнятий,  припиняється  примусово  для  того,  щоб  почав
            виконуватися підпроцес із більш високим пріоритетом.

                  Синхронізація


                 Оскільки  підпроцеси  вносять  у  ваші  програми  асинхронне
            поводження, повинний існувати спосіб їхньої синхронізації. Для
            цієї мети в Java реалізоване елегантний розвиток старої моделі
            синхронізації процесів за допомогою монітора.





                                                                             59
   56   57   58   59   60   61   62   63   64   65   66