真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

當(dāng)我們談Java并發(fā)的時(shí)候,你們?cè)谡勈裁矗?創(chuàng)新互聯(lián)

前言:

目前成都創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、福清網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

很多人在剛開始學(xué) Java 的時(shí)候,會(huì)覺得多線程是一塊難啃的骨頭,特別是對(duì)于非科班的同學(xué)。究其原因,我想主要是因?yàn)闆]有將多線程建立起一種模型,不清楚多線程的問題到底是怎么產(chǎn)生的。在這里,我就和大家聊一下我對(duì)Java 多線程的一些想法。

Java 是基于 Java 虛擬機(jī)(JVM)實(shí)現(xiàn)的一套編程語(yǔ)言,我們寫的 Java 代碼是要在 JVM 中才能運(yùn)行。所謂虛擬機(jī),其實(shí)就是模擬了一個(gè)操作系統(tǒng)。一個(gè)常規(guī)操作系統(tǒng)所必備的功能,虛擬機(jī)一般也會(huì)有。我們計(jì)算機(jī)的操作系統(tǒng)能管理內(nèi)存資源,那么虛擬機(jī)當(dāng)然也要能管理內(nèi)存資源了。在 JVM 里,從邏輯的角度來說,會(huì)把內(nèi)存劃分為兩部分:  線程棧  和  堆  。

嗯,我知道你們對(duì)這樣簡(jiǎn)單粗暴的劃分方式有意見,JVM 里面的內(nèi)存劃分遠(yuǎn)比上面說的復(fù)雜。

而我們今天的談?wù)撝簧婕暗?nbsp; 線程棧  (即虛擬機(jī)棧)和  堆  ,因此就簡(jiǎn)單地認(rèn)為 JVM 只劃分了這兩部分。

也就是說,JVM 里面的內(nèi)存模型,我們可以簡(jiǎn)要地畫成下面的那樣:

當(dāng)我們談 Java 并發(fā)的時(shí)候,你們?cè)谡勈裁矗?></p><p>每一個(gè)線程對(duì)應(yīng)一個(gè)線程棧,線程棧里面的資源是私有的,也就是說我們?cè)诰€程棧里的變量(即所謂的局部變量)是不會(huì)被多個(gè)線程共享。</p><p>堆內(nèi)存是被所有線程所共享的,程序中創(chuàng)建的對(duì)象都會(huì)保留在堆內(nèi)存中。</p><p>好了,說完了 Java 的內(nèi)存模型,我們來看一看計(jì)算機(jī)的內(nèi)存模型。</p><p>我們寫代碼的時(shí)候,代碼和數(shù)據(jù)一般都是保存在硬盤中。當(dāng)我們?cè)?shell 中輸入完一個(gè) javac命令,或者點(diǎn)擊 IDE 的編譯按鈕的時(shí)候,我們的代碼和數(shù)據(jù)會(huì)第一時(shí)間復(fù)制到內(nèi)存中。復(fù)制完成之后會(huì)通知我們的 CPU 處理器,然后 CPU 開始執(zhí)行命令,將內(nèi)存中的信息復(fù)制到 CPU 寄存器中,用來執(zhí)行相應(yīng)指令。在現(xiàn)代 CPU 中,CPU 寄存器運(yùn)行速度非??欤鴥?nèi)存運(yùn)行速度相對(duì)來說就非常慢了,為了彌補(bǔ)兩者運(yùn)行速度之間的巨大差異,在內(nèi)存和 CPU 寄存器之間會(huì)有高速緩存(一般有三級(jí)緩存),用來暫時(shí)存放從內(nèi)存中獲取的數(shù)據(jù)。整個(gè)結(jié)構(gòu)大體如下圖:</p><p><img src=http://weahome.cn/article/csdhes.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部