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