資料內(nèi)容:
GIL是python的全局解釋器鎖,同一進(jìn)程中假如有多個(gè)線(xiàn)程運(yùn)行,一個(gè)線(xiàn)程在運(yùn)行python程序的時(shí)候會(huì)霸占python解釋器(加了一把鎖即GIL),使該進(jìn)程內(nèi)的其他線(xiàn)程無(wú)法運(yùn)行,等該線(xiàn)程運(yùn)行完后其他線(xiàn)程才能運(yùn)行。如果線(xiàn)程運(yùn)行過(guò)程中遇到耗時(shí)操作,則解釋器鎖解開(kāi),使其他線(xiàn)程運(yùn)行。所以在多線(xiàn)程中,線(xiàn)程的運(yùn)行仍是有先后順序的,并不是同時(shí)進(jìn)行。
多進(jìn)程中因?yàn)槊總€(gè)進(jìn)程都能被系統(tǒng)分配資源,相當(dāng)于每個(gè)進(jìn)程有了一個(gè)python解釋器,所以多進(jìn)程可以實(shí)現(xiàn)多個(gè)進(jìn)程的同時(shí)運(yùn)行,缺點(diǎn)是進(jìn)程系統(tǒng)資源開(kāi)銷(xiāo)大