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