深入理解JVM12-java內(nèi)存模型與線程

深入理解JVM-java內(nèi)存模型與線程

java內(nèi)存模型

主內(nèi)存
工作內(nèi)存

內(nèi)存間交互操作

關于主內(nèi)存和工作內(nèi)存之間具體的交互協(xié)議裹驰。即一個變量如何從祝內(nèi)存拷貝到工作內(nèi)存,如何從工作內(nèi)存同步到祝內(nèi)存之類的實現(xiàn)細節(jié)质欲。java內(nèi)存模型中定義了以下8中操作來完成免绿,虛擬機實現(xiàn)時必須保證下面提到的每一種操作都是原子的,不可分割的钾军。

  • lock 作用于主內(nèi)存
  • unlock 作用于主內(nèi)存
  • read 作用于主內(nèi)存
  • load 作用于工作內(nèi)存
  • use 作用于工作內(nèi)存:他把工作內(nèi)存中的一個變量的值傳遞給執(zhí)行引擎
  • assign 作用于工作內(nèi)存 他把一個從執(zhí)行引擎接收到的值賦值給工作內(nèi)存的變量,每當虛擬機遇到一個給變量賦值的字節(jié)碼執(zhí)行時執(zhí)行這個操作绢要。
  • store 作用于工作內(nèi)存 他把工作內(nèi)存中一個變量的值傳遞到主內(nèi)存中吏恭。
  • write 作用于主內(nèi)存的變量,他把store操作從工作內(nèi)存中獲得的變量的值放入主內(nèi)存的變量中重罪,

volatile語義

原子性/可見性/有序性

先行發(fā)生原則

先行發(fā)生時java內(nèi)存模型中定義的兩項操作之間的偏序關系樱哼,如果說操作a先行發(fā)生于操作比,其實就是說在發(fā)生操作b之前剿配,操作a產(chǎn)生的影響能被操作b觀察到搅幅,影響包括修改了內(nèi)存中共享變量的值,發(fā)送了消息呼胚,調(diào)用了方法等茄唐。

java與線程

實現(xiàn)線程的三種方式

使用內(nèi)核線程實現(xiàn)

使用內(nèi)核線程實現(xiàn)

使用用戶線程加精良機進程混合實現(xiàn)

線程調(diào)度

線程調(diào)度是指系統(tǒng)為線程分配處理器使用權的過程。主要調(diào)度方式有兩種蝇更,協(xié)同式線程調(diào)度和搶占式線程調(diào)度沪编。

狀態(tài)轉(zhuǎn)換

線程安全:當多個線程訪問一個對象時,如果不用考慮這些線程在運行時環(huán)境更下的調(diào)度和交替執(zhí)行年扩,也不用進行額外的同步蚁廓,或者在戴永芳進行任何其他的協(xié)同操作,調(diào)用這個對象的行為都可以獲得正確的結果常遂,那這個對象時線程安全的纳令。

按照線程安全的安全程度,我們將java語言中各種操作共享的數(shù)據(jù)分為 以下5類:

不可變克胳;絕對線程安全平绩;相對線程安全;線程兼容漠另;線程對立

鎖優(yōu)化:

  1. 自旋鎖和自適應自旋
  2. 鎖消除
  3. 鎖粗化
  4. 輕量級鎖
  5. 偏向鎖
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捏雌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子笆搓,更是在濱河造成了極大的恐慌性湿,老刑警劉巖纬傲,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肤频,居然都是意外死亡叹括,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門宵荒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汁雷,“玉大人,你說我怎么就攤上這事报咳∠姥叮” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵暑刃,是天一觀的道長厢漩。 經(jīng)常有香客問我,道長岩臣,這世上最難降的妖魔是什么溜嗜? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮婿脸,結果婚禮上粱胜,老公的妹妹穿的比我還像新娘。我一直安慰自己狐树,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布鸿脓。 她就那樣靜靜地躺著抑钟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪野哭。 梳的紋絲不亂的頭發(fā)上在塔,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音拨黔,去河邊找鬼蛔溃。 笑死,一個胖子當著我的面吹牛篱蝇,可吹牛的內(nèi)容都是我干的贺待。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼零截,長吁一口氣:“原來是場噩夢啊……” “哼麸塞!你這毒婦竟也來了?” 一聲冷哼從身側響起涧衙,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤哪工,失蹤者是張志新(化名)和其女友劉穎奥此,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雁比,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡稚虎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了偎捎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蠢终。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鸭限,靈堂內(nèi)的尸體忽然破棺而出蜕径,到底是詐尸還是另有隱情,我是刑警寧澤败京,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布兜喻,位于F島的核電站,受9級特大地震影響赡麦,放射性物質(zhì)發(fā)生泄漏朴皆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一泛粹、第九天 我趴在偏房一處隱蔽的房頂上張望遂铡。 院中可真熱鬧,春花似錦晶姊、人聲如沸扒接。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钾怔。三九已至,卻和暖如春蒙挑,著一層夾襖步出監(jiān)牢的瞬間宗侦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工忆蚀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留矾利,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓馋袜,卻偏偏與公主長得像男旗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子桃焕,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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