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

資訊專欄INFORMATION COLUMN

樂觀鎖及樂觀鎖的實(shí)現(xiàn)

livem / 838人閱讀

摘要:樂觀鎖因?yàn)闊釔?,所以拼搏。樂觀鎖的實(shí)現(xiàn)實(shí)現(xiàn)一比如一個(gè)數(shù)據(jù)庫(kù)表的結(jié)構(gòu)是三個(gè)字段當(dāng)進(jìn)行數(shù)據(jù)的更新時(shí),首先讀取其次更新實(shí)現(xiàn)二算法算法,即有三個(gè)值,內(nèi)存值,預(yù)期舊值,新值,比較內(nèi)存值是否與當(dāng)前預(yù)期值相等,如果相等,則替換新值,否則,不做任何處理。

樂觀鎖

因?yàn)闊釔?,所以拼搏? --RuiDer

前導(dǎo)必備

Java并發(fā)鎖的含義

悲觀鎖

數(shù)據(jù)庫(kù)

高并發(fā)
    高并發(fā)簡(jiǎn)單理解就是在服務(wù)器中,成千上完個(gè)客戶端在同一時(shí)間內(nèi)發(fā)
起對(duì)服務(wù)器端的請(qǐng)求,包括數(shù)據(jù)的請(qǐng)求,這時(shí)服務(wù)器后端需要在極短時(shí)內(nèi)處
理客戶端的請(qǐng)求并且響應(yīng),在互聯(lián)網(wǎng)平臺(tái),追求的是速度和時(shí)間,所以,
這就對(duì)服務(wù)器端有非常大的考驗(yàn)。
    一般客戶端發(fā)起請(qǐng)求,服務(wù)器端接到請(qǐng)求,首先去處理相應(yīng)的數(shù)據(jù),
這就涉及到數(shù)據(jù)庫(kù)中的數(shù)據(jù)操作,或者是緩存中的數(shù)據(jù)處理,總之要與數(shù)據(jù)庫(kù)打交道。
操作數(shù)據(jù)庫(kù)數(shù)據(jù)包括數(shù)據(jù)的查詢,編輯,更新等。
高并發(fā)產(chǎn)生的問題
   不同的線程在同一時(shí)間對(duì)同一數(shù)據(jù)的讀取和更新產(chǎn)生沖突??赡軙?huì)出現(xiàn)線程A讀取
的數(shù)據(jù)不是最新值,線程B更新的數(shù)據(jù)覆蓋其他線程對(duì)該數(shù)據(jù)的更新。這些問題
都是高并發(fā)帶來的,即高并發(fā)產(chǎn)生的問題。
高并發(fā)沖突分類:
    - 數(shù)據(jù)丟失
    - 臟讀
Java提供鎖的支持,通俗的理解就是鎖對(duì)某些數(shù)據(jù)具有保護(hù)作用,防止某一數(shù)據(jù)在同一時(shí)間
被多個(gè)線程操作。
鎖的分類:
    - 悲觀鎖:持保守態(tài)度,只能由某一個(gè)線程持有,其他線程等待持有鎖的線程釋放鎖。性能差
    - 樂觀鎖:下面講
    - 其他鎖:像自旋鎖,輕量級(jí)鎖等
樂觀鎖概念
    對(duì)于每一個(gè)數(shù)據(jù)或者數(shù)據(jù)集合,設(shè)有一個(gè)標(biāo)識(shí)version(字段),
當(dāng)線程讀取數(shù)據(jù)時(shí),同時(shí)會(huì)讀取出標(biāo)識(shí)版本version的值,進(jìn)行更
新時(shí),首先比較當(dāng)前數(shù)據(jù)庫(kù)字段version的值是否與讀取出的
version值相等,如果相等,則更新值,否則,作為過期值丟棄。
樂觀鎖的實(shí)現(xiàn)
實(shí)現(xiàn)一:
        比如一個(gè)數(shù)據(jù)庫(kù)表的結(jié)構(gòu)是
        id value version三個(gè)字段
        當(dāng)進(jìn)行數(shù)據(jù)的更新時(shí),首先讀?。?        select value version from table where id=x;
        其次更新:
            update table set value=newValue, version=oldVersion+1 where id=x and version=oldVersion;

實(shí)現(xiàn)二:
    cas算法:Compare And Swap算法,即有三個(gè)值,內(nèi)存值,預(yù)期舊值,新值,
比較內(nèi)存值是否與當(dāng)前預(yù)期值相等,如果相等,則替換新值,否則,不做任何處理。
about me

我的博客

我的github

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

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

相關(guān)文章

  • Java 中15種鎖的介紹:公平鎖,可重入鎖,獨(dú)享鎖,互斥鎖,樂觀鎖,分段鎖,自旋鎖等等

    摘要:公平鎖非公平鎖公平鎖公平鎖是指多個(gè)線程按照申請(qǐng)鎖的順序來獲取鎖。加鎖后,任何其他試圖再次加鎖的線程會(huì)被阻塞,直到當(dāng)前進(jìn)程解鎖。重量級(jí)鎖會(huì)讓其他申請(qǐng)的線程進(jìn)入阻塞,性能降低。 Java 中15種鎖的介紹 在讀很多并發(fā)文章中,會(huì)提及各種各樣鎖如公平鎖,樂觀鎖等等,這篇文章介紹各種鎖的分類。介紹的內(nèi)容如下: 公平鎖 / 非公平鎖 可重入鎖 / 不可重入鎖 獨(dú)享鎖 / 共享鎖 互斥鎖 / 讀...

    LeoHsiun 評(píng)論0 收藏0
  • MySQL 樂觀鎖于悲觀鎖

    摘要:樂觀鎖樂觀鎖實(shí)際上是一種邏輯思想,并不是數(shù)據(jù)庫(kù)的特性。悲觀鎖利用了存儲(chǔ)引擎的支持行鎖的特性。建議在用戶并發(fā)量不大的應(yīng)用場(chǎng)景下,采用樂觀鎖的方式。在對(duì)數(shù)據(jù)一致性要求很高的情況下,可以犧牲一下性能,采用悲觀鎖。 MySQL5.5 版本之后默認(rèn)采用innoDb 數(shù)據(jù)引擎.本文采用默認(rèn)的存儲(chǔ)引擎。 樂觀鎖 樂觀鎖實(shí)際上是一種邏輯思想,并不是mysql 數(shù)據(jù)庫(kù)的特性。這個(gè)要區(qū)分清楚。 實(shí)現(xiàn)數(shù)據(jù)版...

    liuyix 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<