1. 程式人生 > >python中多執行緒與多程序的選擇問題

python中多執行緒與多程序的選擇問題

多執行緒與多程序的選擇問題

既然python中多執行緒和多程序都能夠進行非同步操作,那麼到底應該如何選擇

首先我們必須知道GIL全域性解釋鎖對執行緒的影響,其同一時間只能夠允許一個執行緒進入cpu進行執行,因此對於cpu密集型的程式並不適用於多執行緒操作

cpu密集型的功能對cpu的佔用率要求很高,需要大量的運算能力,而我們採用多程序的話實際上cpu適用受到了限制,因此這種功能需要用多程序,多程序則不會因為全域性解釋鎖而受到影響

當我們程序io密集型的操作,io密集型對cpu的佔用並不大,實際佔用大的是對硬碟和記憶體的讀寫操作,比如爬蟲,爬蟲用的最多的是爬取資料,將資料返回回來之後進行處理過程實際上佔用到的整個程式執行時間是比較少的,所以這種io密集型的使用多執行緒,避免cpu的浪費