Page 249 - 6571
P. 249

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

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

            Коли потік входить у блок позначений словом synchronized,
            то він захоплює блокування об’єкта.

                  synchronized(bank) {
                     //  критична  секція  коду  в  якій  використовується
            об’єкт bank
                  }

                  Вбудованим блокуванням притаманні деякі обмеження, в то-
            му числі наведені нижче:

                  1. Не можливо перервати потік, який намагається захопити
            блокування.
                  2. Не можливо вказати час очікування, намагаючись захопити

            блокування.
                  Що  ж  все-таки  краще  використовувати:  об’єкти  типу  Lock
            чи  синхронізовані  методи?  Нижче  наведені  деякі  рекомендації,

            які дають відповідь на це питання:
                  1. Якщо для розв’язання конкретної задачі підходить ключо-
            ве  слово  synchronized,  то  його  неодмінно  потрібно  викори-

            стати.  У  даному  випадку  доведеться  написати  набагато  менше
            коду, а отже, допустити менше помилок.
                  2.   Об’єкти  типу  Lock  необхідно  використовувати  тільки  у

            тому  випадку,  якщо  дійсно  потрібні  додаткові  механізми  керу-
            вання процесом синхронізації.


                                   3.2 Порядок виконання роботи

                  1. Ознайомитися із теоретичними відомостями до лаборатор-
                     ної роботи.

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

                  3. На основі результатів роботи поданої нижче програми зро-
                     бити висновки про її коректність.



                                                        248
   244   245   246   247   248   249   250   251   252   253   254