日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java内存模型解析

發(fā)布時(shí)間:2023/12/18 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java内存模型解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.java內(nèi)存模型的誕生原因以及作用

  1.誕生原因

    java虛擬機(jī)中規(guī)范定義的一種內(nèi)存模型,來屏蔽調(diào)各種硬件和操作系統(tǒng)之間的內(nèi)存訪問差異,為了實(shí)現(xiàn)java程序在各種平臺(tái)都能達(dá)到一致的內(nèi)存訪問效果。這是它誕生的緣由。

  2.作用

    其實(shí)這個(gè)內(nèi)存模型主要就是去定義程序中各個(gè)變量的訪問規(guī)則,即在虛擬機(jī)中將變量存儲(chǔ)到內(nèi)存和從內(nèi)存中取出來的底層細(xì)節(jié),這里的變量,是指實(shí)例字段,靜態(tài)字段,數(shù)組等,不包括局部變量和方法參數(shù)。

二.內(nèi)存模型概述

  1.主內(nèi)存

    所以的變量都存在主內(nèi)存,這里的內(nèi)存也就是虛擬機(jī)的內(nèi)存,就是虛擬機(jī)在運(yùn)行時(shí),系統(tǒng)分給虛擬機(jī)的內(nèi)存。

  2.工作內(nèi)存

    工作內(nèi)存保存了該線程使用到的變量的主內(nèi)存副本拷貝,線程對(duì)變量的操作必須在工作內(nèi)存內(nèi)進(jìn)行.

  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?  3.內(nèi)存間的交互操作

    lock(鎖定):作用于主內(nèi)存的變量,把一個(gè)變量標(biāo)識(shí)為一條線程獨(dú)占的狀態(tài)。

    unlock(解鎖):釋放鎖定的變量,這時(shí)才可以被其他線程鎖定。

    read(讀取):主內(nèi)存讀到工作內(nèi)存。

    load(加載):把從主內(nèi)存中的獲取的變量放入工作內(nèi)存的變量副本中。

    use(使用):把工作內(nèi)存的變量加載到執(zhí)行引擎,當(dāng)虛擬機(jī)遇到一個(gè)需要使用變量的字節(jié)碼的指令時(shí)會(huì)用到。

    assign(賦值):執(zhí)行引擎到工作內(nèi)存。

    store(存儲(chǔ)):工作內(nèi)存?zhèn)鞯街鲀?nèi)存。

    write(寫入):把store傳入來的變量放在主內(nèi)存的變量里。

  4.內(nèi)存交互操作的規(guī)則  

   ? ? 1.read和load,store和write必須順序執(zhí)行,不一定連續(xù)執(zhí)行。

   ? ? 2.工作內(nèi)存assign了,值改變了,不能不同步會(huì)主內(nèi)存

    3.沒有assign不能返回主內(nèi)存.

    4.實(shí)施use,store之前,要執(zhí)行assign,和load

    5.一個(gè)變量同一時(shí)刻只能允許一條線程對(duì)其進(jìn)行l(wèi)ock操作,但是lock可以被同一條線程執(zhí)行多次。

    6.如果對(duì)一個(gè)變量進(jìn)行l(wèi)ock,那么就清空工作內(nèi)存的值,執(zhí)行引擎要使用時(shí)要重新load和assign(load和assign會(huì)引起變量的更新)。

    7.變量沒有被lock,不能執(zhí)行unlock。

    8.執(zhí)行unlock,要先store和write同步變量回主內(nèi)存。

轉(zhuǎn)載于:https://www.cnblogs.com/JimmyFanHome/p/9912394.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Java内存模型解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。