Javaマルチスレッドの銀行ATMの例
転載先:http://www.verejava.com/?id=16992914422268
package com.thread;
import java.util.Scanner;
public class TestBank {
public static void main(String[] args) {
Bank bank = new Bank();
Thread lingming = new Thread(bank, " ");
Thread wangtao = new Thread(bank, " ");
lingming.start();
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
wangtao.start();
}
}
class Bank implements Runnable {
public static int money = 1000;
@Override
public synchronized void run() {
System.out.println(Thread.currentThread().getName() + " :" + money);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Scanner in = new Scanner(System.in);
System.out.println(" :");
int num = in.nextInt();
if (money < num) {
System.out.println(Thread.currentThread().getName() + " :" + money + " " + num);
} else {
money = money - num;
System.out.println(Thread.currentThread().getName() + " " + num + " :" + money);
}
}
}
転載先:http://www.verejava.com/?id=16992914422268