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