亚洲综合在线一区二区三区-日韩超碰人人爽人人做人人添-麻豆国产精品久久人妻-无码人妻丰满熟妇啪啪-天堂精品一区二区三区-99久久综合狠狠综合久久aⅴ

×
新網 > 虛擬主機 > 正文

Java內存模型與線程

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-05-15 14:40:56

內存模型:說了這么多的內存模型,到底什么是內存模型呢?特定的操作協議下,對特定的內存或高速緩存進行讀寫訪問的過程抽象。

   內存模型:說了這么多的內存模型,到底什么是內存模型呢?特定的操作協議下,對特定的內存或高速緩存進行讀寫訪問的過程抽象。

1429080380361897.jpg

<div>  它的作用是定義程序中各個共享的變量的訪問規則,即如何將變量寫入內存和從內存中取出變量。Java內存模型有主內存與工作內存之分,所有變量存在主內存中,線程則是擁有自己的工作內存,它是主內存的副本拷貝,線程只能讀寫工作內存。
  8種原子操作
  ·lock(鎖定):作用于主內存的變量,它把一個變量標識為一條線程獨占的狀態。
   unlock(解鎖):作用于主內存的變量,它把一個處于鎖定狀態的變量釋放出來,釋放后的變量才可以被其他線程鎖定。
   read(讀取):作用于主內存的變量,它把一個變量的值從主內存傳輸到線程的工作內存中,以便隨后的 load 動作使用。
   load(載入):作用于工作內存的變量,它把 read 操作從主內存中得到的變量值放入工作內存的變量副本中。
   use(使用):作用于工作內存的變量,它把工作內存中一個變量的值傳遞給執行引擎,每當虛擬機遇到一個需要使用到變量的值的字節碼指令時將會執行這個操作。
  ·assign(賦值):作用于工作內存的變量,它把一個從執行引擎接收到的值賦給工作內存的變量,每當虛擬機遇到一個給變量賦值的字節碼指令時執行這個操作。
   store(存儲):作用于工作內存的變量,它把工作內存中一個變量的值傳送到主內存中,以便隨后的 write 操作使用。
   write(寫入):作用于主內存的變量,它把 store 操作從工作內存中得到的變量的值放入主內存的變量中。
  volatile變量的特殊規則
  volatile的特性是保證此變量對所有線程的可見性,即當變量的值修改后,其他線程可以立即知道發生的變化。普通變量則是修改完值后,需要寫回主內存,然后其他線程再從主內存讀取該數據。volatile還可以通過內存屏障來禁止指令的重排序。綜合來講它的讀操作和普通變量差不多,寫操作慢一點。
  long和double變量的特殊規則
       8種操作一般都是原子性的,但是對于64位的數據,內存模型允許將沒有被volatile修飾的64位數據的讀寫操作劃分為兩次32位的操作進行---->非原子協定但一般我們不需要將long和double聲明為volatile。
       以上就是小編的分享,各位可以在下面留言交流。

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 日韩在线一区二区不卡视频| 国产精品久久久久7777| 亚洲av日韩av永久无码电影| 一本加勒比hezyo无码人妻| 亚洲国产欧美在线看片一国产| 7777久久亚洲中文字幕蜜桃| 国产在线精品视频你懂的| 久久天堂av综合色无码专区| 欧美人与动牲猛交a欧美精品| 热re99久久精品国99热| 青青草国产一区二区内射中出 | 久久精品中文字幕无码绿巨人| 少妇的肉体aa片免费| 午夜不卡久久精品无码免费| 无码人妻一区二区三区免费| 欧美日韩中文国产一区发布| 欧美精品亚洲精品日韩传电影| 国产综合精品一区二区三区| 久久精品www人人爽人人| 国产激情久久久久久熟女老人 | 精品国产人成亚洲区| 精品香蕉在线观看视频| 好紧好湿太硬了我太爽了视频 | 午夜人妻久久久久久久久| 他掀开裙子把舌头伸进去添视频| 竹菊影视欧美日韩一区二区三区四区五区| 色欲综合一区二区三区| 中文人妻无码一区二区三区| 无遮挡边吃摸边吃奶边做| 日本欧美一区二区三区乱码| 欧美亚洲日韩国产人成在线播放| 亚洲精品成人网久久久久久| 久久久亚洲精品一区二区三区浴池| 久99久无码精品视频免费播放| av片亚洲国产男人的天堂| 欧洲精品无码一区二区三区在线播放| 色琪琪av中文字幕一区二区| 绝顶高潮合集videos| 高潮毛片又色又爽免费| 中文无码乱人伦中文视频在线| 亚洲一区二区三区大片|