亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

各種鎖

leejan97 / 3046人閱讀

摘要:各種鎖公平鎖和非公平鎖公平鎖每個線程按照調(diào)用的順序依次獲取鎖獲取鎖之前先檢查等待隊列是否有線程如果沒有線程嘗試獲取鎖否則排隊非公平鎖線程獲取鎖的順序不定與調(diào)用順序無關(guān)直接嘗試獲取鎖未成功再排隊例子線程到達順序先到達獲取鎖到達獲取鎖嘗試獲

各種鎖 公平鎖和非公平鎖 公平鎖

每個線程按照調(diào)用lock的順序依次獲取鎖, 獲取鎖之前先檢查等待隊列是否有線程, 如果沒有線程嘗試獲取鎖, 否則排隊

非公平鎖

線程獲取鎖的順序不定, 與調(diào)用lock順序無關(guān), 直接嘗試獲取鎖, 未成功再排隊

例子

線程到達順序 A->B->C

A先到達獲取鎖

B到達獲取鎖, 嘗試獲取失敗, 進入排隊隊列

A釋放鎖喚醒B, 同時C到達

公平鎖

C發(fā)現(xiàn)等待隊列中有線程, 直接進入等待隊列隊尾排隊掛起, B獲取到鎖

非公平鎖

情況一: C一來直接嘗試獲取鎖, B獲取鎖失敗, 再次進入等待隊列掛起

情況二: C一來直接嘗試獲取鎖, B獲取鎖成功, C進入等待隊列掛起

悲觀鎖和樂觀鎖 悲觀鎖

每次獲取數(shù)據(jù)之前先加鎖, 結(jié)束之后再釋放, 占據(jù)鎖期間, 別人無法獲取數(shù)據(jù)

樂觀鎖

獲取數(shù)據(jù)時不加鎖, 但是設(shè)定一個版本號, 執(zhí)行完事務(wù)后, 與最初版本號進行比較, 如果相等說明數(shù)據(jù)沒有被修改, 將版本號加一, 如果獲取到的版本號小于最新版本號, 說明當前數(shù)據(jù)可能被修改過, 放棄本次操作, 重新操作

適用場景

當沖突較少發(fā)生時, 可以選擇使用樂觀鎖, 節(jié)省了加鎖的代價, 加大吞吐量; 但當沖突較多發(fā)生時, 選擇樂觀鎖時則會經(jīng)常Retry, 降低性能, 或者此時可以選用悲觀鎖

mysql實現(xiàn) 悲觀鎖實現(xiàn)
select from ... for update
樂觀鎖實現(xiàn)

在表中增加一個作為數(shù)據(jù)版本號的字段, 最好為每個需要樂觀鎖的字段多帶帶設(shè)置一個版本號, 否則可能會造成不必的沖突

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/70941.html

相關(guān)文章

  • java線程同步

    摘要:只有首先獲得鎖的任務(wù)線程才能繼續(xù)獲取該對象上的多個鎖。會進一步對時失敗的那些線程進行阻塞操作調(diào)用操作系統(tǒng)的信號量此段來摘自別處。提供了多樣化的同步,比如有時間限制的同步,可以被的同步的同步是不能的等。 各種方法 1?synchronized方法。 public synchronized void save(){} 2?synchronized代碼塊。 synchronized(obj...

    endless_road 評論0 收藏0
  • 你和阿里資深架構(gòu)師之間,差的不僅僅是年齡(進階必看)

    摘要:導讀閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構(gòu)師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己進行查漏補缺,覺得本文對你有幫助的話,可以點贊關(guān)注一下。目錄一基礎(chǔ)篇二進階篇三高級篇四架構(gòu)篇五擴 導讀:閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構(gòu)師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己...

    huaixiaoz 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<