第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

高性能 Springboot 銀行應(yīng)用設(shè)計(jì)

高性能 Springboot 銀行應(yīng)用設(shè)計(jì)

紅顏莎娜 2021-10-27 19:04:51
我試圖在springboot中做一個(gè)涉及多線程的項(xiàng)目。在銀行應(yīng)用程序,我可以像操作doWithdrawal()如synchronized以保持帳戶的完整性,但我無法弄清楚如何在只有特定帳戶的水平做到這一點(diǎn)。由于不同賬號(hào)的用戶應(yīng)該可以同時(shí)進(jìn)行提款,所以用我當(dāng)前的代碼doWithdrawal()將使所有操作同步,而不考慮賬號(hào)。目前我在下面有非常基本的功能,我已經(jīng)將一個(gè)賬戶的提款作為一項(xiàng)synchronized操作使用。我想要一個(gè)場景,不同的賬戶持有人可以同時(shí)從自己的賬戶中提款,但同時(shí)從同一個(gè)賬戶中多次提款,只有這個(gè)過程應(yīng)該是同步的。所以我在這里尋找的是應(yīng)用程序應(yīng)該如何設(shè)計(jì)為具有這樣的功能,我知道我們可以@Async用于異步操作,但不確定它如何適合同一帳戶的提款應(yīng)該是同步但不同的場景異步。Account.javapublic class Account {    int number ;    float currentBalance ;    float openingBalance ;    String accountHolder ;    String branch ;    float rateOfInterest ;    public int getNumber() {        return number;    }    public void setNumber(int number) {        this.number = number;    }    public float getCurrentBalance() {        return currentBalance;    }    public void setCurrentBalance(float currentBalance) {        this.currentBalance = currentBalance;    }    public float getOpeningBalance() {        return openingBalance;    }    public void setOpeningBalance(float openingBalance) {        this.openingBalance = openingBalance;    }    public String getAccountHolder() {        return accountHolder;    }    public void setAccountHolder(String accountHolder) {        this.accountHolder = accountHolder;    }    public String getBranch() {        return branch;    }    public void setBranch(String branch) {        this.branch = branch;    }    public float getRateOfInterest() {        return rateOfInterest;    }    public void setRateOfInterest(float rateOfInterest) {        this.rateOfInterest = rateOfInterest;    }}
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以在該特定的“accountNum”上進(jìn)行同步,而不是在整個(gè)方法上進(jìn)行同步,如下所示:


 public void doWithdrawal(int accNum) {

    synchronized(accountMap.get(accNum)) {

        // now perform withdrawal

    }

 }

這樣,您只會(huì)在帳號(hào)相同時(shí)進(jìn)行同步。


查看完整回答
反對(duì) 回復(fù) 2021-10-27
  • 1 回答
  • 0 關(guān)注
  • 186 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)