如何用Java线程实现银行的存款取款问题最好能写出编出的具体程序
- 提问者网友:自食苦果
- 2021-02-05 23:17
- 五星知识达人网友:老鼠爱大米
- 2021-02-05 23:39
网上很多这种例子的..
- 1楼网友:你可爱的野爹
- 2021-02-06 00:59
accounttest.java
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;
}
}
classiccustomerextendsthread {
string name;
bankaccount bs; //定义一个具体的账户对象
public customer(bankaccount b,string s)
{
name=s;
bs=b;
}
public static void cus(string name,bankaccount bs) //具体的账户操作方法
{
if(name.equals("小明")) //判断用户是不是小明
{
try
{
for(int i=0;i<6;i++) //用户晓明则向银行存款6次,每次1000元 {
thread.currentthread().sleep((int)(math.random()*300));
bs.despoit(1000);
}
}
catch(interruptedexception e)
{}
}
else
{
try
{
for(int i=0;i<6;i++) //用户不是小明则从银行取款6次,每次1000元
{
thread.currentthread().sleep((int)(math.random()*300));
bs.withdraw(1000);
}
}
catch(interruptedexception e)
{}
}
}
public void run() //定义run方法
}
cus(name,bs);
}
}
public class
accounttest
{
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().sleep(500);
}
}