synchronized安全性,小银行实例

来源:互联网 发布:valhalla java 编辑:程序博客网 时间:2024/05/03 01:42
package com.zhidi.anquan;


public class Bank {
public int yue;
public Bank(int yue) {
this.yue=yue;
}
public  void quqian(int money){
synchronized (this) {
if(yue>=money){
System.out.println(Thread.currentThread().getName()+"账户余额为:"+yue);
System.out.println(Thread.currentThread().getName()+"取钱:"+money);
yue-=money;
System.out.println(Thread.currentThread().getName()+"取钱后账户余额为:"+yue);
}
}
}



}

————————————————————————————————————————————————————

package com.zhidi.anquan;


public class Quqian extends Thread {
public Bank bank;
public int money;


public  Quqian(Bank bank,int money){
this.bank=bank;
this.money=money;

}
public void run() {
bank.quqian(money);


}

————————————————————————————————————————————————————————

package com.zhidi.anquan;


public class Text {
public static void main(String [] args){

Bank bank = new Bank(1000);
Thread wx = new Quqian(bank,100);
wx.setName("微信");
Thread qq = new Quqian(bank,100);
qq.setName("qq钱包");
Thread zfb = new Quqian(bank,100);
zfb.setName("支付宝");

wx.start();
qq.start();
zfb.start();

}



}











}

0 0
原创粉丝点击