Page 73 - 4657
P. 73

одержує керування об'єктом X, а іншої - об'єктом Y, після чого
            Х  намагається  викликати  будь-який  синхронізований  метод  Y,
            цей виклик, природно блокується. Якщо при цьому і Y спробує
            викликати  синхронізований  метод  X,  то  програма  з  такою
            структурою  підпроцесів  виявиться  заблокованої  назавжди.
            Справді,  адже  для  того,  щоб  один  з  підпроцесів  захопив
            потрібний  йому  об'єкт,  йому  потрібно  зняти  своє  блокування,
            щоб другий підпроцес міг завершити роботу.
                 Зведення  функцій  програмного  інтерфейсу  легковагих
            процесів
                 Нижче  приведене  зведення  всіх  методів  класу  Thread,  що
            обговорювалися в цій главі.

                  Методи класу


                 Методи  класу  -  це  статичні  методи,  які  можна  викликати
            безпосередньо з ім'ям класу Thread.

                  currentThread

                 Статичний  метод  currentThread  повертає  об'єкт  Thread,  що
            виконується в даний момент.

                  yield

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

                  sleep(int n)

                 При  виклику  методу  sleep  виконуюча  система  блокує
            поточний підпроцес на n мілісекунд. Після того, як цей інтервал
            часу закінчиться, підпроцес знову буде здатний виконуватися. У
            більшості  виконуючих  систем  Java  системної  годинник  не


                                                                             71
   68   69   70   71   72   73   74   75   76   77   78