用JAVA中的多线程示例银行取款问题

xiaoxiao2025-02-11  20

public class Test { public static void main(String[] args) { Account account = new Account(); for (int i = 0; i < 1000; i++) { new TestAccount1(account).start(); new TestAccount2(account).start(); } } } /** * @authorleno 账户类 默认有余额,可以取款 */ 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 + "元!"); try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } balance -= money; } else { System.out.println("对不起,余额不足!"); } System.out.println("余额为:" + getBalance() + "元!"); } } /** * @authorleno 银行卡 */ class TestAccount1 extends Thread { private Account account; public TestAccount1(Account account) { this.account = account; } @Override public void run() { account.withdrawals(2); } } /** * @authorleno 存折 */ class TestAccount2 extends Thread { private Account account; public TestAccount2(Account account) { this.account = account; } @Override public void run() { account.withdrawals(1); } } 相关资源:Java多线程实现银行存款与取款线程
转载请注明原文地址: https://www.6miu.com/read-5024530.html

最新回复(0)