2018-01-26

## 并發(fā)的驅(qū)動力

并發(fā)編程復(fù)興的主要驅(qū)動力來自于“多核危機(jī)”。

## 并發(fā)與并行

并發(fā)程序含有多個(gè)邏輯上的獨(dú)立執(zhí)行塊,它們可以獨(dú)立地并行執(zhí)行,也可以串行執(zhí)行。


并發(fā)是同一時(shí)間應(yīng)對(dealing with)多件事情的能力;

并行是同一時(shí)間動手做(doing)多件事情的能力。





并發(fā)程序的執(zhí)行通常是不確定的,它會隨著事件時(shí)序的改變而給出不同的結(jié)果。對于真正的并發(fā)程序,不確定性是其與生俱來且伴隨始終的屬性。與之相反,并行程序可能是確定。


傳統(tǒng)的“線程與鎖”模型并沒有顯式支持并行。

##單核CPU級別的并行

單核在位級和指令級兩個(gè)層次上都能夠并行地使用這些晶體管資源。

##? 單核CPU級別的并行 位級(bit-level)并行

對于兩個(gè)32位數(shù)的加法,8位計(jì)算機(jī)必須進(jìn)行多次8位計(jì)算,而32位計(jì)算機(jī)可以一步完成,即并行地處理32位數(shù)的4字節(jié)。

## 單核CPU級別的并行 指令級(instruction-level)并行

現(xiàn)代CPU的并行度很高,盡管處理器內(nèi)部的并行度很高,但是經(jīng)過精心設(shè)計(jì),從外部看上去所有處理都像是串行的。


## 單核CPU級別的并行 數(shù)據(jù)級(data)并行


數(shù)據(jù)級并行(也稱為“單指令多數(shù)據(jù)”,SIMD)架構(gòu),可以并行地在大量數(shù)據(jù)上施加同一操作。



##多核CPU級別的并行 共享內(nèi)存的多處理器

每個(gè)處理器都能訪問整個(gè)內(nèi)存,處理器之間的通信主要通過內(nèi)存進(jìn)行

圖片發(fā)自簡書App


##多核CPU級別的并行 分布式內(nèi)存的多處理器

對于分布式內(nèi)存的多處理器系統(tǒng),每個(gè)處理器都有自己的內(nèi)存,處理器之間的通信主要通過網(wǎng)絡(luò)進(jìn)行

圖片發(fā)自簡書App

通過內(nèi)存通信比通過網(wǎng)絡(luò)通信更簡單更快速,所以用共享內(nèi)存編程往往更容易。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容