中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

金閶公司網(wǎng)站建設(shè)電話優(yōu)化排名推廣關(guān)鍵詞

金閶公司網(wǎng)站建設(shè)電話,優(yōu)化排名推廣關(guān)鍵詞,桐鄉(xiāng)哪里有做網(wǎng)站的,收錄提交入口CAS是一種樂觀鎖機制,一種比較并交換的過程和理念,用來解決線程安全問題,具體來講就是對共享變量值的安全更新機制。能夠保證原子、可見、一致性。這種交換過程是在Unsafe類中實現(xiàn)。 從一段簡單的代碼開始來對源碼做分析 public static void…

CAS是一種樂觀鎖機制,一種比較并交換的過程和理念,用來解決線程安全問題,具體來講就是對共享變量值的安全更新機制。能夠保證原子、可見、一致性。這種交換過程是在Unsafe類中實現(xiàn)。

從一段簡單的代碼開始來對源碼做分析

    public static void main(String[] args) {AtomicInteger ai = new AtomicInteger(0);ai.getAndAdd(1);System.out.println(ai.get());//打印對象ai的內(nèi)存結(jié)構(gòu),需要引入jol-core工具包ClassLayout classLayout = ClassLayout.parseInstance(ai);System.out.println(classLayout.toPrintable());}

從 new AtomicInteger(0) 進(jìn)入先看構(gòu)造方法和靜態(tài)代碼塊,再看ai.getAndAdd(1)做了什么。

public class AtomicInteger extends Number implements java.io.Serializable {...private static final long valueOffset;static {try {//獲取初始值value的內(nèi)存偏移量,這個偏移量指的是變量相對于對象地址的偏移,通過此偏移可以獲取變量在內(nèi)存中的值,后面還會介紹valueOffset = unsafe.objectFieldOffset(AtomicInteger.class.getDeclaredField("value"));} catch (Exception ex) { throw new Error(ex); }}//初始化的時候給value賦值public AtomicInteger(int initialValue) {value = initialValue;}//比較并交換的具體實現(xiàn),需要進(jìn)入到Unsafe類中public final int getAndAdd(int delta) {//this-當(dāng)前atomicInter對象;valueoffest-內(nèi)存偏移量;delta需要增加的值return unsafe.getAndAddInt(this, valueOffset, delta);}
}

?進(jìn)入到Unsafe.getAndAddInt方法中

 public final class Unsafe {...public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {//通過AtomicInteger對象和其變量value的偏移量獲取內(nèi)存中的value值,這里var5對其他線程                            是可見的, 如果不可見,那么這個值的獲取就可能非內(nèi)存真實值。如果var5 = this.getIntVolatile(var1, var2);//compareAndSwapInt的過程是原子性的,將重新獲取到的內(nèi)存value值與var5比較,true則說明value的內(nèi)存值并未被修改,可以將原值var5 + 增值var4。} while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));return var5;}
}  

通過斷點看具體的值

?再來看偏移量是什么,下面是AtomicInteger類型對象ai的內(nèi)存結(jié)構(gòu)

java.util.concurrent.atomic.AtomicInteger object internals:OFFSET  SIZE   TYPE DESCRIPTION                               VALUE0     4        (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)4     4        (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)8     4        (object header)                           bd 3d 00 f8 (10111101 00111101 00000000 11111000) (-134201923)12     4    int AtomicInteger.value                       1
Instance size: 16 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total

請看標(biāo)紅的位置,由于對象的分配是在一個地址段內(nèi),對象中變量就是基于對象初始地址作了偏移,這里是對象中value變量相對對象初始地址的位置,其值最終為1。

個人理解,有不對之處,望請指正,謝謝。

http://www.risenshineclean.com/news/43255.html

相關(guān)文章:

  • 拓客軟件網(wǎng)站百度seo關(guān)鍵詞優(yōu)化
  • 阿里云服務(wù)器上的網(wǎng)站怎么做修改四川省人民政府官網(wǎng)
  • 北京公司網(wǎng)站建設(shè)價格seo營銷排名
  • 手機網(wǎng)站底部電話軟文營銷的寫作技巧有哪些
  • jq特效網(wǎng)站模板全網(wǎng)最好的推廣平臺
  • 怎么做自已的網(wǎng)站太原seo網(wǎng)站排名
  • asp做網(wǎng)站的優(yōu)勢是什么新品牌推廣方案
  • 鄭州網(wǎng)站建設(shè)特色得物app的網(wǎng)絡(luò)營銷分析論文
  • 桂林市內(nèi)旅游必去景點整站seo外包
  • 深圳做網(wǎng)站信科品牌推廣內(nèi)容
  • ppt模板免費下載網(wǎng)站不需要登錄torrentkitty磁力官網(wǎng)
  • 快速做網(wǎng)站的軟件免費網(wǎng)絡(luò)空間搜索引擎
  • 360客服做網(wǎng)站電話網(wǎng)絡(luò)工程師培訓(xùn)班要多少錢
  • 在線做章網(wǎng)站aso蘋果關(guān)鍵詞優(yōu)化
  • 哪家建設(shè)網(wǎng)站長春網(wǎng)站建設(shè)平臺
  • 如何自己做攝影網(wǎng)站萬能搜索引擎網(wǎng)站
  • 微店網(wǎng)站鏈接怎么做seo外包是什么意思
  • 手工做衣服網(wǎng)站網(wǎng)站引流推廣怎么做
  • 手機h5制作小程序百度手機seo軟件
  • WordPress自定義計算小紅書seo排名
  • 重慶品牌網(wǎng)站建設(shè)電商自學(xué)網(wǎng)
  • wap手機網(wǎng)站源碼企業(yè)網(wǎng)站的作用有哪些
  • wordpress 更新很慢微信公眾號seo
  • 西安做的好的網(wǎng)站公司南昌seo全網(wǎng)營銷
  • 怎么創(chuàng)建網(wǎng)站 免費的官網(wǎng)設(shè)計公司
  • 新企業(yè)在哪里做網(wǎng)站好關(guān)鍵詞推廣優(yōu)化排名品牌
  • wordpress文章頁面菜單優(yōu)化大師win7
  • 女女做的網(wǎng)站目前最新推廣平臺
  • 南通網(wǎng)站開發(fā)招聘按效果付費的網(wǎng)絡(luò)推廣方式
  • html5手機網(wǎng)站開發(fā)區(qū)別百度快照推廣