Java多线程模拟在同一张银行中取钱存钱

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhijun0901/article/details/85255697
/**
 * 银行卡类
 */
public class BankCard {
	
	private int balance;//余额
	public BankCard(int balance) {
		super();
		this.balance = balance;
	}
	public BankCard(){
		
	}
	public void setBalance(int balance) {
		this.balance = balance;
	}
	public int getBalance(){
		return balance;
	}
}
/**
 * 存钱
 */
public class SaveMoney implements Runnable{
	private BankCard card;
	
	
	public SaveMoney(BankCard card) {
		super();
		this.card = card;
	}

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			card.setBalance(card.getBalance()+10000);
			System.out.println(Thread.currentThread().getName()+"存了10000元,余额是:"+card.getBalance());
		}
	}
}
/**
 * 取钱功能
 */
public class SubMoney implements Runnable{
	private BankCard card;
	
	public SubMoney(BankCard card) {
		super();
		this.card = card;
	}

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			if(card.getBalance()>=10000){
				card.setBalance(card.getBalance()-10000);
				System.out.println(Thread.currentThread().getName()+"取了10000元,余额是:"+card.getBalance());
			}else{
				System.out.println(Thread.currentThread().getName()+"准备取钱,余额不足10000,该冲钱了!");
			}
		}
	}
}
public class Test {

	public static void main(String[] args) {
		// 1.创建银行卡对象
		BankCard card = new BankCard();
		// 2.存钱功能
		SaveMoney save = new SaveMoney(card);
		// 3.取钱功能
		SubMoney sub = new SubMoney(card);
		// 4.线锃对象
		Thread a = new Thread(save, "小强");
		Thread b = new Thread(sub, "小丽");
		// 启动线程
		a.start();
		b.start();
	}
}

猜你喜欢

转载自blog.csdn.net/zhijun0901/article/details/85255697