在多 " /> 办公室中文BD,精子pk美女,92精品国产成人观看免费

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

技術詳解:三招優化.NET中的鎖(組團)

  在這篇文章中,我將使用三個方法處理樂觀鎖,包括ADO.NET數據集、SQL Server時間戳數據類型和新舊值檢查,首先我們從并發談起,探討5個并發問題,然后從實際出發,利用這三種方法實現樂觀鎖。

  為什么需要鎖?
  在多用戶環境中,大家同時更新相同的記錄可能會引發沖突,這個問題用專業的術語描述就叫做并發性。并發會造成什么樣的沖突?并發主要會導致四種常見的問題,詳細情況請看下表。

  如何解決上述沖突?
  答案是使用樂觀鎖或悲觀鎖,下面將進一步進行闡述。什么是樂觀鎖?顧名思義,樂觀鎖假設多個事務相互不會影響對方,換句話說就是,在樂觀鎖模式下,沒有鎖操作會得到執行,事務只是驗證是否有其它事務修改數據,如果有則進行事務回滾,否則就提交。

  樂觀鎖是如何工作的?
1、實現樂觀鎖的方法有多種,但基本原則都一樣,總是少不了下面五個步驟:
2、記錄當前的時間戳
3、開始修改值
4、在更新前,檢查是否有其他人更新了值(通過檢查新舊時間戳實現)
5、如果不相等就回滾,否則就提交

圖 1 樂觀鎖的工作原理

  實現樂觀鎖的解決方案

  在.NET中,實現樂觀鎖的方法主要有三種:
1、數據集(Dataset):數據集是實現樂觀鎖的默認方法,在更新前它會檢查新舊值。
2、時間戳數據類型(timestamp):在你的表中創建一個timestamp數據類型,在更新時,檢查舊時間戳是否等于新時間戳。
3、直接檢查新舊值:在更新時檢查舊值和新值是否相等,如果不相等就回滾,否則就提交。

  解決方案1:數據集
  正如前面所說的,數據集是處理樂觀鎖的默認方法,下面是一個簡單的快照,在Adapter的update函數上有一個調試點,當我移除斷點運行update函數時,它拋出如下圖所示的并行異常錯誤。

圖 2 Update函數執行時拋出的異常錯誤

  如果你運行后端分析器,你將會看到更新語句檢查當前值和舊值是否相等:

  在這種情況下,我嘗試將“AuthorName”字段值修改為“This isnew”,但更新時會檢查舊值“This is old author”,下面是比較舊值的精簡代碼段:

  解決方案2:使用timestamp數據類型

  SQL Server有一個數據類型是timestamp,它是實現樂觀鎖的另一種途徑,每次更新SQL Server數據時,時間戳會自動產生一個唯一的二進制數值,時間戳數據類型可用來版本化你的記錄更新。

圖 3 timestamp數據類型

  為了實現樂觀鎖,首先需要取得舊的時間戳值,在更新時檢查舊的時間戳值是否等于當前時間戳,如:

  然后檢查是否發生了更新操作,如果沒有發生更新,則使用SQL Server的raiserror產生一系列錯誤消息。

  如果發生了并發沖突,當你如下圖所示這樣調用ExecuteNonQuery時,你應該會看到錯誤傳播。

圖 4 時間戳發生變化,存儲過程產生了錯誤

  解決方案3:檢查舊值和新值
  許多時候,我們只需要檢查相關字段值的一致性,其它字段則可以忽略,在update語句中,我們可以直接做這種比較。

NET技術技術詳解:三招優化.NET中的鎖(組團),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品AV无码免费播放 | 久草在在线免视频在线观看 | 精品久久久久久久久免费影院 | 大香网伊人久久综合观看 | 99久久国产综合精品国 | 全部免费特黄特色大片看片 | 国产午夜免费视频片夜色 | 夜色伊甸园| 国产成人精品在视频 | 97 sese| 久久国产精品久久国产精品 | 97视频免费在线 | 日本老妇一级特黄aa大片 | 老司机无码精品A | 吃奶吸咪咪动态图 | 国产精品亚洲第一区二区三区 | 野花日本韩国视频免费高清观看 | 久久中文字幕亚洲精品最新 | 双性被疯狂灌满精NP | 窝窝色资源站 | 国产69精品久久久久无码麻豆 | 伊人色综合久久天天网 | 少妇人妻偷人精品视蜜桃 | 杨幂视频1分11未删减在线观看 | 国产亚洲精品久久久久久久软件 | 色久久久综合88一本道 | 久久国产精品永久网站 | 青青草原影视 | 成人免费一区二区无码视频 | 超碰在线视频caoporn | TUBE19UP老师学生 | 日韩免费精品视频 | 午夜福利体验试看120秒 | 国产亚洲精品久久久久久无码网站 | 午夜看片福利在线观看 | 大胸美女脱内衣黄网站 | 亚洲精品成人无码A片在线 亚洲精品成人久久久影院 亚洲精品成人a在线观看 | 日本高清免费一本在线观看 | 亚洲欧美自拍清纯中文字幕 | 強姧伦久久久久久久久 | 99re热视频这里只有精品 |