您的位置:首页 > 编程语言

第四周作业-多线程编程

2014-04-01 11:31 253 查看
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 {
public static void main(String args[]) throws InterruptedException {
BankAccount 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);
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: