多進(jìn)程為啥可以利用好CPU?
在對(duì)進(jìn)程環(huán)境下面,一個(gè)進(jìn)程如果要執(zhí)行代碼,它同樣先要去 獲取 GIL這個(gè)鎖,難道了這把鎖才能執(zhí)行Python的代碼,然后執(zhí)行一段代碼,然后釋放鎖.
多進(jìn)程環(huán)境下,也同樣面臨 每次只能有一個(gè)進(jìn)程可以執(zhí)行代碼嗎,這里是指同一時(shí)刻.
為什么多進(jìn)程就可以很好的利用多核CPU呢 ?
沒(méi)有理解,希望老師解答一下.??
2020-10-19
因?yàn)檫@"老師"有些地方講錯(cuò)了
python用threading.Thread形式開(kāi)出來(lái)的線程, 都活在同一個(gè)核上, 所以共用一個(gè)GIL
而用multiprocessing.Process這樣開(kāi)出來(lái)的進(jìn)程, 是互相獨(dú)立的(可以打印pid號(hào)發(fā)現(xiàn)), 每個(gè)進(jìn)程使用各自的GIL, 進(jìn)程間的GIL不相干.