时间:2021-05-20
本文实例为大家分享了Java银行存取款的具体代码,供大家参考,具体内容如下
1.不加锁情况
运行结果:
代码:将加锁情况中加锁部分进行注释即可
2.加锁情况
运行结果
缓冲区代码
package Bank; import java.util.LinkedList; public class BankAccount { static double sum=1000; private LinkedList<Object> list = new LinkedList<>(); //存款 public void deposit() { synchronized(list) { System.out.print(list.size()); while(list.size()>1) { System.out.println("暂不支持存款"); try { // System.out.print("wait"); list.wait(); } catch (InterruptedException e) { e.printStackTrace(); //System.out.print("wait"); } } list.add(new Object()); int money=300; sum=sum+money; System.out.println(Thread.currentThread().getName()+"存入了"+money+"元"+"现在共有存款"+sum); list.notifyAll(); } } //取款 public void withdrawal() { synchronized(list) { while(list.size()==0) {// int money=50;// sum=sum-money; System.out.println(Thread.currentThread().getName()+"暂时不支持取款"); try { list.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } list.remove(); int money=200; if(sum>200) { sum=sum-money; System.out.println(Thread.currentThread().getName()+"取出了"+money+"元"+"现在共有存款"+sum); }else { System.out.println("账户余额不足"); } list.notify(); } } }存款代码
package Bank; public class Deposit implements Runnable { private BankAccount bankAccount1; public Deposit() {} public Deposit(BankAccount bankAccount1) { this.bankAccount1=bankAccount1; } @Override public void run() { // TODO Auto-generated method stub while(true) { try { Thread.sleep(2000); bankAccount1.deposit(); } catch (InterruptedException e) { // TODO: handle exception e.printStackTrace(); } } }}取款代码
package Bank; public class Withdrawal implements Runnable{ private BankAccount bankAccount; public Withdrawal() {} public Withdrawal(BankAccount bankAccount) { this.bankAccount=bankAccount; } @Override public void run() { // TODO Auto-generated method stub while(true) { try { Thread.sleep(3000); bankAccount.withdrawal(); } catch (InterruptedException e) { // TODO: handle exception e.printStackTrace(); } } }}主函数代码
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.工作流程2.模拟自动存取款机的操作代码如下:importmsvcrt,sys,os#定义用星号隐藏密码输入的函数defpsw_input():li=[]wh
java实现银行ATM自助取款机,实现功能:用户登录、余额查询、存钱、取钱、转账、修改密码、退出系统。用java实现一个ATM机系统(2.0版)设计思路设计五个
Java多线程线程同步与死锁1.线程同步多线程引发的安全问题一个非常经典的案例,银行取钱的问题。假如你有一张银行卡,里面有5000块钱,然后你去银行取款2000
银行取款的时候有一个规则,就是连续输入密码错误三次账户会被冻结。那么咱们现阶段的Java基础有没有能力去编写出一段类似的代码呢?请接着往下看。//java中连续
Java模拟ATM机,供大家参考,具体内容如下实现登录,查询,转账,取款,修改密码,退出功能。源码packagebank;importjava.io.*;imp