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

第四周作业-多线程编程

2014-03-25 09:16 344 查看
class BankAccount   //定义银行账号类BankAccount
{
private static int amount = 2000;  //账户余额最初为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()       //定义run方法
{
cus(name,bs);

}
}
public class AccountTest1
{
public static void main(String arg[])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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java