Java內(nèi)存模型與線程

概述

  多任務(wù)處理在現(xiàn)代計(jì)算機(jī)操作系統(tǒng)中幾乎已是一項(xiàng)必備的功能,多任務(wù)運(yùn)行是壓榨手段,就如windows一樣,我們使勁的壓榨它運(yùn)行多個(gè)任務(wù),俱要high又要耍。并發(fā)則是另外一種更具體的應(yīng)用場(chǎng)景。每秒事物處理數(shù)(Transactions per Second,tps)是最重要的指標(biāo)。開(kāi)發(fā)人員應(yīng)該了解與運(yùn)用并發(fā)。

硬件的效率與一致性

  除了有軟件上的并發(fā),物理計(jì)算機(jī)也有并發(fā)問(wèn)題。計(jì)算機(jī)的存儲(chǔ)設(shè)備與處理器運(yùn)算速度有幾個(gè)數(shù)量級(jí)的差距,現(xiàn)代計(jì)算機(jī)都不得不加入一層高速緩存來(lái)作為內(nèi)存與處理器之間的緩沖,這樣能夠提升處理速度?;诟咚倬彺娼鉀Q了處理器與內(nèi)存的速度矛盾,但是也提高了計(jì)算機(jī)系統(tǒng)復(fù)雜度,帶來(lái)了緩存一致性問(wèn)題。在多處理器系統(tǒng)中,每個(gè)處理器有自己的高速緩存,而它們又共享同一個(gè)主內(nèi)存。如圖:

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

  多個(gè)處理器的任務(wù)都涉及同一塊主內(nèi)存區(qū)域時(shí),將可能導(dǎo)致各自的緩存數(shù)據(jù)不一致。為了解決這種一致性的問(wèn)題,需要各個(gè)處理器訪問(wèn)緩存時(shí)都遵循一些協(xié)議,在操作時(shí)要根據(jù)協(xié)議來(lái)進(jìn)行操作,這類協(xié)議有MSI、MESI(Illinois Protoclo)MOSISynapse、Firefly以及Dragon Protocal等。

  除了增加高速緩存之外,為了使處理器得到充分利用,

網(wǎng)友評(píng)論