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