4--9

進(jìn)程、線程、協(xié)程對(duì)比

請(qǐng)仔細(xì)理解如下的通俗描述

有一個(gè)老板想要開(kāi)個(gè)工廠進(jìn)行生產(chǎn)某件商品(例如剪子)

他需要花一些財(cái)力物力制作一條生產(chǎn)線,這個(gè)生產(chǎn)線上有很多的器件以及材料這些所有的 為了能夠生產(chǎn)剪子而準(zhǔn)備的資源稱之為:進(jìn)程

只有生產(chǎn)線是不能夠進(jìn)行生產(chǎn)的,所以老板的找個(gè)工人來(lái)進(jìn)行生產(chǎn),這個(gè)工人能夠利用這些材料最終一步步的將剪子做出來(lái),這個(gè)來(lái)做事情的工人稱之為:線程

這個(gè)老板為了提高生產(chǎn)率,想到3種辦法:

在這條生產(chǎn)線上多招些工人,一起來(lái)做剪子,這樣效率是成倍増長(zhǎng),即單進(jìn)程 多線程方式

老板發(fā)現(xiàn)這條生產(chǎn)線上的工人不是越多越好,因?yàn)橐粭l生產(chǎn)線的資源以及材料畢竟有限,所以老板又花了些財(cái)力物力購(gòu)置了另外一條生產(chǎn)線,然后再招些工人這樣效率又再一步提高了,即多進(jìn)程 多線程方式

老板發(fā)現(xiàn),現(xiàn)在已經(jīng)有了很多條生產(chǎn)線,并且每條生產(chǎn)線上已經(jīng)有很多工人了(即程序是多進(jìn)程的,每個(gè)進(jìn)程中又有多個(gè)線程),為了再次提高效率,老板想了個(gè)損招,規(guī)定:如果某個(gè)員工在上班時(shí)臨時(shí)沒(méi)事或者再等待某些條件(比如等待另一個(gè)工人生產(chǎn)完謀道工序 之后他才能再次工作) ,那么這個(gè)員工就利用這個(gè)時(shí)間去做其它的事情,那么也就是說(shuō):如果一個(gè)線程等待某些條件,可以充分利用這個(gè)時(shí)間去做其它事情,其實(shí)這就是:協(xié)程方式

簡(jiǎn)單總結(jié)

進(jìn)程是資源分配的單位

線程是操作系統(tǒng)調(diào)度的單位

進(jìn)程切換需要的資源很最大,效率很低

線程切換需要的資源一般,效率一般(當(dāng)然了在不考慮GIL的情況下)

協(xié)程切換任務(wù)資源很小,效率高

多進(jìn)程、多線程根據(jù)cpu核數(shù)不一樣可能是并行的,但是協(xié)程是在一個(gè)線程中 所以是并發(fā)

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

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

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