posts - 28,  comments - 15,  trackbacks - 0

          我的評(píng)論

          @金利鎖業(yè)
          這個(gè)公司內(nèi)部分享,個(gè)人覺(jué)得都大多數(shù)開(kāi)發(fā)者來(lái)說(shuō)具有參考價(jià)值
          @xylz
          這里的模擬都使用了synchronized(內(nèi)在鎖)關(guān)鍵字,模擬CAS還有什么意義呢?引入CAS的目的不就是為了較少鎖的競(jìng)爭(zhēng),提高多線程并發(fā)的吞吐率嗎?
          我覺(jué)得要模擬也應(yīng)該像AQS那樣,比如,這是AQS的源碼中狀態(tài)變量的原子操作:

          A.Q.S里面包含了一個(gè)存儲(chǔ)同步狀態(tài)的變量,它的聲明如下:

          private volatile int state;

          這里采用了volatile修飾符的原因是為了保證對(duì)state變量的寫(xiě)對(duì)所有的線程都是可見(jiàn)的。但是大家都知道,volatile只能保證變量的可見(jiàn)性,不能保證對(duì)變量操作的原子性,所以A.Q.S里面就采用了CAS(Compare And Swap)操作來(lái)更新state變量的值,代碼如下:

          protected final boolean compareAndSetState(int expect, int update)
          { // See below for intrinsics setup to support this
          return unsafe.compareAndSwapInt(this, stateOffset, expect, update); }


          個(gè)人覺(jué)得這樣才能模擬出CAS的本質(zhì),原子特性。
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類(17)

          隨筆檔案(28)

          文章分類(30)

          文章檔案(30)

          相冊(cè)

          收藏夾(2)

          hibernate

          java基礎(chǔ)

          mysql

          xml

          關(guān)注

          壓力測(cè)試

          算法

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 96408
          • 排名 - 601

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 商丘市| 蒙城县| 精河县| 南康市| 湖州市| 融水| 海城市| 淮阳县| 宜宾县| 北流市| 阳江市| 新建县| 乌拉特后旗| 固镇县| 鄂伦春自治旗| 大荔县| 济阳县| 武乡县| 礼泉县| 五指山市| 周口市| 二手房| 东莞市| 仙游县| 沿河| 慈溪市| 汶川县| 安泽县| 福鼎市| 松潘县| 日土县| 三都| 张家口市| 安义县| 南昌县| 东丰县| 泰宁县| 泰顺县| 沙河市| 大同市| 五台县|