欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)銀行存取款

 更新時間:2019年12月26日 15:10:52   作者:盈小盈*ZERO  
這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)銀行存取款,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java銀行存取款的具體代碼,供大家參考,具體內(nèi)容如下

1.不加鎖情況

運(yùn)行結(jié)果:

代碼:將加鎖情況中加鎖部分進(jìn)行注釋即可

2.加鎖情況

運(yùn)行結(jié)果

緩沖區(qū)代碼

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+"元"+"現(xiàn)在共有存款"+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+"元"+"現(xiàn)在共有存款"+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();
 }
 }
 }
}

主函數(shù)代碼

package Bank;
 
public class Main {
 public static void main(String[] args) {
 BankAccount bankAccount1=new BankAccount();
 
 Thread d1=new Thread(new Deposit(bankAccount1));
 Thread d2=new Thread(new Deposit(bankAccount1));
 Thread d3=new Thread(new Deposit(bankAccount1));
 
 Thread w1=new Thread(new Withdrawal(bankAccount1));
 Thread w2=new Thread(new Withdrawal(bankAccount1));
 Thread w3=new Thread(new Withdrawal(bankAccount1));
 
 d1.start();
 d2.start();
 d3.start();
 w1.start();
 w2.start();
 w3.start();
 
 }
}

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java WebService 簡單實例(附實例代碼)

    Java WebService 簡單實例(附實例代碼)

    本篇文章主要介紹了Java WebService 簡單實例(附實例代碼), Web Service 是一種新的web應(yīng)用程序分支,他們是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過web調(diào)用。有興趣的可以了解一下
    2017-01-01
  • string boot 與 自定義interceptor的實例講解

    string boot 與 自定義interceptor的實例講解

    下面小編就為大家分享一篇string boot 與 自定義interceptor的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 使用idea的database模塊繪制數(shù)據(jù)庫er圖的方法

    使用idea的database模塊繪制數(shù)據(jù)庫er圖的方法

    這篇文章主要介紹了使用idea的database模塊繪制數(shù)據(jù)庫er圖,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • java獲取ip地址與網(wǎng)絡(luò)接口的方法示例

    java獲取ip地址與網(wǎng)絡(luò)接口的方法示例

    這篇文章主要給大家介紹了關(guān)于利用java如何獲取ip地址與網(wǎng)絡(luò)接口的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • java實現(xiàn)XML增加元素操作簡單示例

    java實現(xiàn)XML增加元素操作簡單示例

    這篇文章主要介紹了java實現(xiàn)XML增加元素操作,結(jié)合簡單實例形式分析了java針對xml格式數(shù)據(jù)的讀取、遍歷、創(chuàng)建等操作技巧,需要的朋友可以參考下
    2017-02-02
  • java對接支付寶支付項目的實戰(zhàn)記錄

    java對接支付寶支付項目的實戰(zhàn)記錄

    最近公司有一個需求是接入第三方支付(微信&支付寶),我接到了支付寶支付,所以下面這篇文章主要給大家介紹了關(guān)于java對接支付寶支付項目的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • SpringBoot后端進(jìn)行數(shù)據(jù)校驗JSR303的使用詳解

    SpringBoot后端進(jìn)行數(shù)據(jù)校驗JSR303的使用詳解

    這篇文章主要介紹了SpringBoot后端進(jìn)行數(shù)據(jù)校驗JSR303的使用詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java中遍歷Map的六種方法實現(xiàn)

    Java中遍歷Map的六種方法實現(xiàn)

    這篇文章主要介紹了Java中遍歷Map的六種方法,Map是常用的數(shù)據(jù)結(jié)構(gòu)之一,它提供了鍵值對的存儲方式,可以方便地進(jìn)行數(shù)據(jù)查找和操作,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):單,雙向鏈表

    java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):單,雙向鏈表

    這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • mybatis輸入映射和輸出映射實例詳解

    mybatis輸入映射和輸出映射實例詳解

    這篇文章主要介紹了mybatis輸入映射和輸出映射,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論