色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java如何控制多人同時進行修改數據庫操作

張吉惟2年前152瀏覽0評論

java如何控制多人同時進行修改數據庫操作?

首先,我理解的多人同時進行修改即為并發修改,根據并發的不同層面可以分為:線程級,進程級,應用級,下面針對不同層面有不同的控制策略:

線程級,也就是我們平時所謂的多線程編程,最簡單的方式就是使用synchronize關鍵字或者Lock類等進行悲觀鎖操作,這種方式對于資源沖突不明顯的場景會讓線程進行不必要的等待。所以如果沖突只是小概率事件,可以考慮使用juc包中的atomic類通過cas實現樂觀鎖;

進程級,這里的進程級指的是分布式部署下的多實例,這種場景的特點是運行的代碼是一樣的,所以遵循著同樣的計算規則,一般采用外部中間件進行并發控制,可以考慮借用redis、zookeeper等中間件實現分布式鎖;

應用級,所謂應用級就是完全不同的兩個應用,這種情況分兩種情況,一種是彼此事先約定鎖的規則或使用公用的組件進行數據庫訪問,參考進程級;另一種情況則是通過數據庫層來進行控制,包括使用for update進行行鎖,以及通過update x set y =z where id=abc and y={修改前的值}(這時候其實是通過編程規范來約定)。

java樂觀鎖,java如何控制多人同時進行修改數據庫操作