併發(什麼時候應該考慮併發問題)

2021-09-22 20:06:32 字數 616 閱讀 3242

沒錯,這周專案又出現的問題。

這次的問題是當外聯的處理系統反盤給我們兩條資訊時候,只更新了第一條,沒有更新第二條。或者說可能是第二條也更新了第一條。

因為兩次反盤的請求相隔時間是毫秒級的。再次想到了併發的問題,但是當看**後發現,兩次請求並不會有併發的問題。但是不能說每次都把問題歸結於併發,然後解決方案就是鎖表操作。

第一次問題可以用鎖表來預防併發的前提是,系統的交易量不大,每週可能才會有幾十次的互動。但是這一次不行,因為有系統中有按月的跑批操作,在某一天的時候會頻繁和外聯系統互動,所以這一次要換解決方案了。

多次觀察**後發現由於邏輯特別複雜,方法中巢狀方法導致有的引數可能在巢狀的方法中會做出修改,又由於方法之間傳遞的是以物件為載體,更不容易確定其中的屬性是否在巢狀方法中修改(這裡可能看一下引數傳遞部分),在討論之後的解決方案是

1 當傳遞的引數不多的時候,用基本資料型別,或者string等方式傳遞,不放入實體物件中。

2 當不得不用實體傳遞時,提前將可能用到的屬性值放入對應的資料型別中。

public string getname(user user)

001 併發 併發問題入門

在此記錄,以備遺忘 加一把鎖不就好了,如果們被鎖住了,就代表有人在使用這個廁所,問題完美被解決了!併發問題就是解決 多個執行緒 使用 同乙個公共資源 的事情!直接在業務邏輯上新增synchronized關鍵字即可 public class test02main catch interruptedex...

什麼時候考慮使用靜態

這些各種說法,基本上都是正確的。但是,其中絕大多數是講了 靜態 和 例項 的區別,以及靜態方法的特徵。很少有說到何時或是為什麼要使用靜態的。靜態包括靜態類和靜態成員 靜態方法 和 靜態屬性 既然搜尋出來的這些說的都是靜態成員 基本上說的都是靜態方法 那麼我也就先僅對靜態方法談一談自己的看法。上中學數...

解決併發問題

一.使用redis鎖 智慧型雲 工單系統 搶單 工單id鎖key public static final string cloud live gain order lock orderid cloud live gain order lock orderid component public cla...