Page 251 - 6571
P. 251

Лістинг 3.2 – Програмна реалізація класу TransferThread
                  public class TransferThread extends Thread {
                     private Bank bank;

                     public TransferThread(Bank bank) {
                        this.bank = bank;

                     }

                     public void run() {
                        for (int i=0; i<100; i++) {
                           try {
                              bank.transfer();
                           } catch (InterruptedException e) {
                              e.printStackTrace();
                           }
                        }
                     }
                  }


                  Лістинг 3.3 – Програмна реалізація класу Main

                  public class Main {
                     public static void main(String[] args) {

                        Bank bank = new Bank(500, 500);

                        Thread thread1 = new 4TransferThread(bank);
                        Thread thread2 = new TransferThread(bank);

                        thread1.start();
                        thread2.start();
                     }
                  }



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

                  1. Якими властивостями володіє монітор у термінології мови
            Java?
                  2. Які у мові Java використовуються механізми захисту кри-

            тичної секції коду від паралельного доступу?
                  3. Який вид блокування називається реентерабельним?
                  4. Яке призначення ключового слова synchronized у мові

            Java?

                                                        250
   246   247   248   249   250   251   252   253   254   255   256