樂觀鎖悲觀

      網友投稿 847 2025-03-31

      常見的鎖的類型:

      偏向鎖、自旋鎖、輕量級鎖、重量級鎖、獨占鎖、共享鎖、公平鎖、非公平鎖、可重入鎖、讀寫鎖。

      樂觀鎖vs悲觀鎖:

      樂觀鎖和悲觀鎖只是設計思想上的一個概念。

      樂觀鎖:假設認為數據一般情況下不會產生并發沖突,所以在數據提交的時候才會去對數據檢查是否發生了并發沖突。(即在同一時間點只有一個線程對共享變量操作,所以適合樂觀的思想)

      樂觀鎖的問題:并不總是能處理所有問題,所以會引入一定的系統復雜度。

      悲觀鎖:總是假設最壞的情況,每次別人拿數據時都會產生并發沖突,都會去上鎖。(思想:同一時間點,經常有多個線程對共享變量操作,適合悲觀鎖)

      悲觀鎖的問題:總是需要競爭鎖,進而導致發生線程切換,掛起其他線程;所以性能不高。

      所以要使用哪種設計思想,應該根據不用的應用場景來決定。

      基于樂觀鎖實現的機制:CAS機制,又稱無鎖操作;

      CAS: Compare And Swap ,比較并交換

      CAS(V,O,N)——>V:內存地址實際存放的實際值;O:預期的舊值; N:要賦值的新值。

      樂觀鎖和悲觀鎖

      可能出現的問題:ABA問題

      CAS(V,O,N)中,當V==O時,N可以直接寫進V;當N!=O時,不能寫入,但當O ==N時,也可能時已經被其他線程修改過,但預期的舊值還是等于主存當時存的值,這就是ABA問題。

      解決方案:增加版本號;

      作用:每次修改后,版本號+1,通過版本號來觀察V是否被修改過。

      總結:

      1.悲觀鎖是線程先加鎖,后修改變量操作;

      2.樂觀鎖是線程直接嘗試修改變量操作,在這個過程中不會發生線程阻塞;

      3. CAS的實現原理:基于unsafe來實現,本質上是基于CPU提供的接口保證線程安全修改變量;

      4. CAS在java中的應用:

      自旋鎖:

      無條件自旋

      有條件自旋:如可中斷的自旋(自旋時可以使用線程判斷中斷標志位后再執行)

      自旋+CAS的適用場景:同一時間點,常常只有一個線程操作。

      不適用的場景:同一時間點,常常有很多線程操作。

      自旋的缺陷:線程一直處于運行狀態,占用CPU內存,比較耗費資源。

      任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:word工具欄隱藏了怎么辦(2019word工具欄隱藏了怎么辦)
      下一篇:excel怎樣統計業績最大值
      相關文章
      亚洲日本VA中文字幕久久道具| 亚洲av永久无码精品三区在线4 | 亚洲日韩aⅴ在线视频| 亚洲av永久无码精品秋霞电影秋| 亚洲色av性色在线观无码| 亚洲国产成人高清在线观看| 国产亚洲精久久久久久无码| 亚洲熟女少妇一区二区| 国产成人精品日本亚洲| 亚洲精品高清无码视频| 久久综合日韩亚洲精品色| 亚洲国产精品一区第二页| 日本红怡院亚洲红怡院最新| 黑人精品videos亚洲人| 亚洲国产精品无码av| 亚洲av无码乱码国产精品fc2| 亚洲av中文无码乱人伦在线播放| 亚洲av无码片在线播放| 亚洲AV无码久久精品蜜桃| 亚洲AV无码成人精品区天堂| 久久香蕉国产线看观看亚洲片| 久久亚洲中文字幕精品有坂深雪| 中文字幕在线观看亚洲| 亚洲人成影院在线高清| 亚洲 欧洲 日韩 综合在线| 亚洲AV无码专区在线电影成人| 无码欧精品亚洲日韩一区夜夜嗨| 国产亚洲精品国产福利在线观看| 亚洲AV无码乱码精品国产| 国产乱辈通伦影片在线播放亚洲 | 亚洲男人天堂2022| 亚洲精品无码久久久久APP | 中文字幕亚洲综合精品一区| 亚洲最新黄色网址| 亚洲一区二区三区高清在线观看| 亚洲精品人成网线在线播放va | 337p欧洲亚洲大胆艺术| 亚洲一区二区三区不卡在线播放| 国产亚洲精品成人AA片| 亚洲Aⅴ无码一区二区二三区软件| 国产国拍亚洲精品福利|