第四周作业-多线程编程

来源:互联网 发布:直播电影的软件 编辑:程序博客网 时间:2024/05/16 01:08
class BankAccount {private static int amount = 2000;public void despoit(int m) {amount = amount + m;System.out.println("小明存入[" + m + "元]");}public void withdraw(int m) {amount = amount - m;System.out.println("张新取走[" + m + "元]");if (amount < 0)System.out.println("***余额不足***");}public int balance() {return amount;}}class Customer extends Thread {String name;BankAccount bs;public Customer(BankAccount b, String s) {name = s;bs = b;}public synchronized static void cus(String name, BankAccount bs) {if (name.equals("小明")) {try {for (int i = 0; i < 6; i++) {Thread.currentThread();Thread.sleep((int) (Math.random() * 300));bs.despoit(1000);}} catch (InterruptedException e) {}} else {try {for (int i = 0; i < 6; i++) {Thread.currentThread();Thread.sleep((int) (Math.random() * 300));bs.withdraw(1000);}} catch (InterruptedException e) {}}}public void run() {cus(name, bs);}}public class AccountTest1 {/** * @param args */public static void main(String[] args) throws InterruptedException {// TODO Auto-generated method stubBankAccount bs = new BankAccount();Customer customer1 = new Customer(bs, "小明");Customer customer2 = new Customer(bs, "张新");Thread t1 = new Thread(customer1);Thread t2 = new Thread(customer2);t1.start();t2.start();Thread.currentThread();Thread.sleep(500);}}

0 0
原创粉丝点击