内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

什么是線程內(nèi)存模型

本篇內(nèi)容介紹了“什么是線程內(nèi)存模型”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專注于安源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供安源營銷型網(wǎng)站建設(shè),安源網(wǎng)站制作、安源網(wǎng)頁設(shè)計、安源網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造安源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供安源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

1.內(nèi)存模型圖的思維轉(zhuǎn)換

什么是線程內(nèi)存模型

JVM定義了Java的虛擬內(nèi)存模型,跟C/C++不一樣的是,虛擬內(nèi)存將物理內(nèi)存劃分了不同的區(qū)域,而C/C++是直接映射物理內(nèi)存的。

籠統(tǒng)的來說,jvm一般將內(nèi)存分為棧和堆,棧用來存儲靜態(tài)方法和靜態(tài)變量,而堆用來存儲對象和普通變量。

但是如果從線程的角度,內(nèi)存模型會變成下圖的樣子

什么是線程內(nèi)存模型

在這個模型中,變量是在主內(nèi)存中的,線程各自有各自的工作內(nèi)存,不會出現(xiàn)相互干擾。

工作內(nèi)存通過跟主內(nèi)存之間的操作,實現(xiàn)變量數(shù)據(jù)的交換共享。而線程工作內(nèi)存是相互隔離的。這樣各線程工作的時候不會對其他線程的工作數(shù)據(jù)產(chǎn)生影響

2.實例解析線程內(nèi)存模型

什么是線程內(nèi)存模型

如上圖所示,左邊是一個簡單的賣票程序,右邊是程序加載的內(nèi)存模型,當程序通過類加載器加載到方法區(qū)后,在棧中建立的main方法的線程,創(chuàng)建了Tiecket t 的變量后,會在堆中建立該對象的成員變量tickets和方法

什么是線程內(nèi)存模型

當在main方法中創(chuàng)建窗口1和窗口1線程后,每個線程都會有獨立的棧內(nèi)存空間,而這些棧內(nèi)存共享相同的變量tickets

什么是線程內(nèi)存模型

3.工作內(nèi)存和主內(nèi)存之間的操作(單個線程)

兩塊內(nèi)存有8種操作。

  1. (lock - unlock) lock將一個主內(nèi)存變量標記成線程獨占,unlock將獨占的變量釋放

  2. (read - load)read 將主內(nèi)存的變量讀取到CPU中,load操作將read到的變量存入到工作內(nèi)存中,一定會成對出現(xiàn)

  3. (use - assign) use將工作內(nèi)存中的變量傳遞給執(zhí)行的代碼中,當代碼需要使用變量值的字節(jié)碼時,需要這個操作。 assign 賦值操作,將代碼中賦值指令出現(xiàn)時,把收到的變量賦值到工作內(nèi)存中

  4. (store - write) store 將工作內(nèi)存的變量傳送回主內(nèi)存,但是只是傳送,write操作才會將值寫入到主內(nèi)存。而且這兩個一定會成對出現(xiàn)


  • read load ; store write只能成對操作,不能出現(xiàn)只讀不用,只返回不存儲

  • 不允許線程丟棄assign操作,用完的變量一定會傳回主內(nèi)存,也不允許將未assign的變量從工作內(nèi)存寫回主內(nèi)存

  • 變量只能從主內(nèi)存中創(chuàng)建,未初始化的變量線程不能load 或 assign

  • 變量只能被一條線程lock,而且可以lock很多次,必須執(zhí)行相應(yīng)條數(shù)的unlock才會被釋放

  • 線程只能unlock自己lock的變量,未被lock的變量不能執(zhí)行unlock,不允許unlock其他線程lock的變量

  • lock變量操作會將工作內(nèi)存的變量清空,使用這個變量時,相應(yīng)使用這個變量時,需要重新load 和assign

  • unlock 前,變量會被重新寫入主內(nèi)存

“什么是線程內(nèi)存模型”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站標題:什么是線程內(nèi)存模型
本文來源:http://www.rwnh.cn/article38/jgjssp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站營銷、動態(tài)網(wǎng)站網(wǎng)站排名、企業(yè)網(wǎng)站制作網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
广丰县| 银川市| 瑞昌市| 乐业县| 瓦房店市| 郸城县| 新余市| 商南县| 错那县| 甘洛县| 武义县| 平陆县| 南丰县| 红安县| 公安县| 东阳市| 马鞍山市| 怀来县| 常熟市| 察隅县| 定南县| 赣榆县| 晋城| 东阳市| 旌德县| 高安市| 井冈山市| 荆州市| 德保县| 徐州市| 天峻县| 阿图什市| 洪雅县| 建水县| 彭山县| 玉龙| 荣成市| 梁河县| 裕民县| 抚宁县| 汾西县|