java內(nèi)存模型jvm虛擬機(jī)簡(jiǎn)要分析
主內(nèi)存和工作內(nèi)存
- Java 內(nèi)存模型規(guī)定了所有的變量都存儲(chǔ)在主內(nèi)存中, 每條線程有自己的工作內(nèi)存
- 線程的工作內(nèi)存中保存了被該線程使用的變量的主內(nèi)存副本, 線程對(duì)變量的所有操作 (讀取、賦值等) 都必須在工作內(nèi)存中進(jìn)行, 而不能直接讀寫主內(nèi)存中的數(shù)據(jù)
- 不同的線程之間也無法直接訪問對(duì)方工作內(nèi)存中的變量, 線程間變量值的傳遞均需要通過主內(nèi)存來完成
內(nèi)存間的交互操作
原子性、可見性、有序性
Java 內(nèi)存模型是圍繞著在并發(fā)過程中如何處理原子性、可見性、有序性這三個(gè)特征來建立的
原子性
基本數(shù)據(jù)類型的訪問、讀寫都是具備原子性的。synchronized 實(shí)現(xiàn)原子性
可見性
可見性是指當(dāng)一個(gè)線程修改了共享變量的值時(shí), 其他線程能夠立刻得知這個(gè)修改Java 內(nèi)存模型是通過在變量修改后將新值同步回主內(nèi)存, 在變量讀取前從主內(nèi)存刷新變量值這種依賴主內(nèi)存作為傳遞媒介的方式來實(shí)現(xiàn)可見性的volatile、synchronized、final 實(shí)現(xiàn)可見性
有序性
volatile、synchronized 實(shí)現(xiàn)有序性
以上就是java內(nèi)存模型jvm虛擬機(jī)簡(jiǎn)要分析的詳細(xì)內(nèi)容,更多關(guān)于java內(nèi)存模型jvm虛擬機(jī)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mybatis簡(jiǎn)介與配置_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了mybatis簡(jiǎn)介與配置,介紹了MyBatis+Spring+MySql簡(jiǎn)單配置,有興趣的可以了解一下2017-09-09Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法
這篇文章主要介紹了Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法,結(jié)合實(shí)例形式分析了java正則表達(dá)式中傳遞控制參數(shù)的功能與相關(guān)操作技巧,需要的朋友可以參考下2017-04-04java Spring Boot 配置redis pom文件操作
這篇文章主要介紹了java Spring Boot 配置redis pom文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07SpringBoot使用CORS實(shí)現(xiàn)無縫跨域的方法實(shí)現(xiàn)
CORS 是一種在服務(wù)端設(shè)置響應(yīng)頭部信息的機(jī)制,允許特定的源進(jìn)行跨域訪問,本文主要介紹了SpringBoot使用CORS實(shí)現(xiàn)無縫跨域的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10