A从柜台取,B从ATM取钱
package com.xjh.demo.thread; public class MoneyTest { public static void main(String[] args) { Bank bank = new Bank(); new PersonB(bank,800).start(); new PersonA(bank,600).start(); new PersonA(bank,500).start(); } } class Bank { static int total = 10000; public void station(int num) { Bank.total -= num; System.out.println("A取出" + num + "元,还剩:" + Bank.total + "元"); } public void atm(int num) { Bank.total -= num; System.out.println("B取出" + num + "元,还剩:" + Bank.total + "元"); } } class PersonA extends Thread { Bank bank; int money; public PersonA(Bank bank, int money) { this.bank = bank; this.money = money; } @Override public void run() { while (Bank.total >= money) { bank.station(money); try { sleep(100); } catch (Exception e) { e.printStackTrace(); } } } } class PersonB extends Thread { Bank bank; int money; public PersonB(Bank bank, int money) { this.bank = bank; this.money = money; } @Override public void run() { while (Bank.total >= money) { bank.atm(money); try { sleep(100); } catch (Exception e) { } } } }