java多线程银行取款例子_使用java多线程实现银行取款的问题

packagecom.softeem.demo;

/**

*@author leno

*账户类

*默认有余额,可以取款

*/

class Account {

private float balance = 1000;

public float getBalance() {

return balance;

}

public void setBalance(float balance) {

this.balance = balance;

}

/**

*取款的方法需要同步

*@parammoney

*/

public synchronized void withdrawals(float money)

{

if(balance>=money)

{

System.out.println("被取走"+money+"元!");

balance-=money;

}

else

{

System.out.println("对不起,余额不足!");

}

}

}

/**

*@authorleno

*银行卡

*/

class TestAccount1 extends Thread {

private Account account;

public TestAccount1(Account account) {

this.account = account;

}

@Override

public void run() {

account.withdrawals(800);

System.out.println("余额为:"+account.getBalance()+"元!");

}

}

/**

*@authorleno

*存折

*/

class TestAccount2 extends Thread {

private Account account;

public TestAccount2(Account account) {

this.account = account;

}

@Override

public void run() {

account.withdrawals(700);

System.out.println("余额为:"+account.getBalance()+"元!");

}

}

public class Test

{

public static void main(String[] args) {

Account account = new Account();

TestAccount1 testAccount1 = new TestAccount1(account);

TestAccount2 testAccount2 = new TestAccount2(account);

testAccount1.start();

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

testAccount2.start();

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值