62,614
社区成员
发帖
与我相关
我的任务
分享
package com;
public class TestThreadBank {
private String name; //name
private double balance; //balance
public TestThreadBank(String name){
this.name=name;
this.balance=0;
}
public String getName(){
return name;
}
public double balance(){
return balance;
}
public void put(double value) //存款操作
{
if(value>0){
this.balance+=value;
}
}
public double get(double value){//取款操作
if(value>0){
if(value<this.balance)
this.balance-=value;
else{
value=this.balance;
this.balance=0;
}
return value;
}
return 0;
}
public static void main(String args[]){//主方法
TestThreadBank bank=new TestThreadBank("wang");
//TestThreadBank bank2=new TestThreadBank("xiang");
(new Save(bank, 100)).start();
(new Save(bank, 200)).start();
(new Fetch(bank, 300)).start();
}
}
class Save extends Thread{
private TestThreadBank countBank;
private double value;
public Save(TestThreadBank A,double value)//存款类
{
this.countBank=A;
this.value=value;
}
public void run(){
synchronized (this.countBank) {
double howmach=this.countBank.balance();
this.countBank.put(value);
try{
sleep(1);
}catch (InterruptedException e) {
// TODO: handle exception
}
System.out.println(this.countBank.getName()+"账户:现有"+howmach+"存入"+this.value+"余额"+this.countBank.balance());
}
}
}
class Fetch extends Thread{
private TestThreadBank countBank;
private double value;
public Fetch(TestThreadBank A1,double value){
this.countBank=A1;
this.value=value;
}
public void run(){
synchronized (this.countBank) {
double howmatch=this.countBank.balance();
try {
sleep(1);
} catch (InterruptedException e) {
// TODO: handle exception
}
System.out.println(this.countBank.getName()+"账户:现有"+howmatch+"取走"+this.countBank.get(value)+"余额"+this.countBank.balance());
}
}
}