java內(nèi)存模型

前言:Java內(nèi)存模型簡稱JMM(Java Memory Model)

由來

JMM的設(shè)計主要是為了屏蔽各種硬件和操作系統(tǒng)的內(nèi)存訪問差異粉怕,以實(shí)現(xiàn)讓Java程序在各種平臺下都能達(dá)到一直的內(nèi)存訪問效果。它主要的目標(biāo)就是定義程序中各個變量的訪問規(guī)則檐嚣。

分類

JMM主要分為主內(nèi)存(Main Memory) 和工作內(nèi)存(Working Memory)
1.所有的變量的都存儲在主內(nèi)存;
2.每條線程都有自己的工作線程庭敦,工作線程保存了被該線程使用到的變量的主內(nèi)存的副本拷貝厌丑;
3.線程對變量的所有操作(讀取/賦值)等操作都是在工作線程中完成的,而不能直接讀取主內(nèi)存中的數(shù)據(jù)辈双。
4.不同線程之間也無法訪問訪問對方的工作線程中的變量,線程之間的數(shù)據(jù)的傳遞都是通過主內(nèi)存完成的柜砾。
5.他們的關(guān)系圖如下所示:


java內(nèi)存模型.jpeg

注:這里所說的內(nèi)存劃分和Java內(nèi)存區(qū)域中的堆/棧/方法去等并不是統(tǒng)一層次的劃分湃望,兩者基本上沒有關(guān)系的。

內(nèi)存間的交互

我們上面也說了痰驱,線程之間是沒辦法訪問证芭,所以我們主要的交互就是:
1.怎么將工作內(nèi)存的數(shù)據(jù)同步到主內(nèi)存中?
2.怎么將主內(nèi)存的數(shù)據(jù)拷貝到工作線程中担映?

以下是Java內(nèi)存中定義的8種操作(在最新的文檔中已棄用废士,所以這里只是稍微提一下):
1.lock(鎖定):作用于主內(nèi)存變量,他把一個變量標(biāo)記為一個線程獨(dú)占的狀態(tài)另萤;
2.unlock(解鎖):作用于主內(nèi)存變量湃密,他將一個鎖定的變量釋放出來;
3.read(讀取):作用于主內(nèi)存變量四敞,他將一個變量從主內(nèi)存中傳輸?shù)焦ぷ鲀?nèi)存中泛源;
4.load(載入):作用于工作內(nèi)存變量,他將從主內(nèi)存得到的變量放入到工作內(nèi)存的變量副本中
5.use(使用):作用于工作變量忿危,他將變量交給執(zhí)行引擎达箍;
6.assign(賦值):作用于工作內(nèi)存變量,他將執(zhí)行引擎返回的數(shù)據(jù)賦值給工作內(nèi)存中的變量铺厨;
7.store(存儲):作用于工作內(nèi)存變量缎玫,他將工作內(nèi)存的變量傳給主內(nèi)存硬纤;
8.write(寫入):作用于主內(nèi)存變量,他將從工作內(nèi)存中獲取的變量回寫到主內(nèi)存中赃磨;

待續(xù)

還沒總結(jié)完筝家,會繼續(xù)更新... (因?yàn)樽约簩@塊了解的比較少,也是邊學(xué)習(xí)邊更新)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邻辉,一起剝皮案震驚了整個濱河市溪王,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌值骇,老刑警劉巖莹菱,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吱瘩,居然都是意外死亡道伟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門使碾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜜徽,“玉大人,你說我怎么就攤上這事部逮∧戎” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵兄朋,是天一觀的道長。 經(jīng)常有香客問我怜械,道長颅和,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任缕允,我火速辦了婚禮峡扩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘障本。我一直安慰自己教届,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布驾霜。 她就那樣靜靜地躺著案训,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粪糙。 梳的紋絲不亂的頭發(fā)上强霎,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機(jī)與錄音蓉冈,去河邊找鬼城舞。 笑死轩触,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的家夺。 我是一名探鬼主播脱柱,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拉馋!你這毒婦竟也來了榨为?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤椅邓,失蹤者是張志新(化名)和其女友劉穎柠逞,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體景馁,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡板壮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了合住。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绰精。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖透葛,靈堂內(nèi)的尸體忽然破棺而出笨使,到底是詐尸還是另有隱情,我是刑警寧澤僚害,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布硫椰,位于F島的核電站,受9級特大地震影響萨蚕,放射性物質(zhì)發(fā)生泄漏靶草。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一岳遥、第九天 我趴在偏房一處隱蔽的房頂上張望奕翔。 院中可真熱鬧,春花似錦浩蓉、人聲如沸派继。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驾窟。三九已至,卻和暖如春讯泣,著一層夾襖步出監(jiān)牢的瞬間纫普,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昨稼,地道東北人节视。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像假栓,于是被迫代替她去往敵國和親寻行。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容