Page 257 - 6571
P. 257

account = account - amount;
                  notifyAll();

                  Існують також додаткові форми методу wait(),  що дозво-

            ляють вказувати час очікування по закінченню якого потік поно-
            влює свою роботу.


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

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

                  2. Використовуючи  методи  міжпотокової  взаємодії  написати
                     програму,  що  вирішує  задачу  під  назвою  «постачальник-
                     споживач»

                  3. Постачальник та споживач мають бути реалізовані у формі
                     двох незалежних потоків перший з яких кладе фрукти у ко-
                     рзину, а другий – виймає їх із корзини.
                  4. Корзина  представляє  собою  об’єкт  над  яким  можна  вико-

                     нувати операції додавання та видаляння фруктів.
                  5. Процедура  додавання  та  виймання  фруктів  полягає  у  на-
                     ступному:

                     ‒ спочатку постачальник кладе фрукт у корзину, після чого
                        очікує до того часу, поки споживач не вийме його із кор-
                        зини;
                     ‒ коли споживач виймає фрукт із корзини, то він сповіщає

                        про це постачальника і очікує поки той не поставить на-
                        ступний фрукт;
                     ‒ у корзині не може знаходитися більше одного фрукту.

                  6. Дану задачу вирішити за допомогою двох різних підходів:
                     ‒ з використанням неявних моніторів об’єктів;
                     ‒ з використанням високорівневих методів комунікації між

                        потоками.
                  7. У звіті до лабораторної роботи представити знімки робочої
                     програми.

                  8. Оформити звіт та зробити висновки по роботі.

                                          4.3 Контрольні запитання

                  1. Які  існують  механізми  міжпотокових  комунікацій  у  мові

            Java?




                                                        256
   252   253   254   255   256   257   258   259   260   261   262