利用多线程怎么编写存款与取款的问题?

wjckobe 2008-06-21 10:18:27
利用多线程怎么编写存款与取款的问题?
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxeldor_coder 2008-06-22
  • 打赏
  • 举报
回复
class Account1{ //账户缓冲区
private String name;
private int value;
void put(int i){
value=value+i;
}
int get(int i){
if(value>i){
value=value-i;
}
else{
i=value;
value=0;
}
return i;
}
int howmatch(){
return value;
}

}


class Save2 extends Thread{ //存款
private Account1 a1;
private int amount;
public Save2(Account1 a1,int amount){
this.a1=a1;
this.amount=amount;
}
public void run(){
synchronized(a1){
int k=a1.howmatch();
try{
sleep(1);
}
catch(InterruptedException e){
System.out.println(e);
}
a1.put(amount);
System.out.println("现有"+k+",存入"+amount+",余额"+a1.howmatch());
}
}
public static void main(String args[]){
Account1 a1=new Account1();
(new Save2(a1,100)).start();
(new Save2(a1,200)).start();
(new Save2(a1,500)).start();
}
}
class Fetch2 extends Thread{ //取款
private Account1 a1;
private int amount;
public Fetch2(Account1 a1,int amount){
this.a1=a1;
this.amount=amount;
}
public void run(){
synchronized(a1){
int k=a1.howmatch();
try{
sleep(1);
}
catch(InterruptedException e){
System.out.println(e);
}
System.out.println("现有"+k+",取走"+a1.get(amount)+"余额"+a1.howmatch());
}
}
}
//这是书上关于存取款的例子
刘彬彬 2008-06-22
  • 打赏
  • 举报
回复
归根结底,就是生产者消费者模型的应用.
嘿嘿,这种问题已经回答很多遍了,GOOGLE一下,楼主可以自行选择,自行解决问题............
bxeldor_coder 2008-06-22
  • 打赏
  • 举报
回复
恩,在写。回复内容太短了!
老紫竹 2008-06-21
  • 打赏
  • 举报
回复
一段模拟出纳的操作,你自己参考吧 http://www.java2000.net/viewthread.jsp?tid=5382
jingulang 2008-06-21
  • 打赏
  • 举报
回复
N个用户就启N个线程 是这个意思不?

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧