1 模塊簡介
multiprocessing模塊在Python2.6中引入。最初的multiprocessing是由Jesse Noller和Richard Oudkerk在PEP 371中定義。就像你可以在threading模塊中使用多個線程一樣,multiprocessing模塊允許你使用多個進程。當(dāng)你使用多個進程時,你可以避免GIL鎖,并充分利用機器的多處理器。
multiprocessing庫包括一些沒有在threading模塊中出現(xiàn)的API。例如,你可以使用Pool類在多個輸入上并行執(zhí)行一個函數(shù)。我們將在后面的章節(jié)提到Pool。我們先從multiprocessing中的Process類開始。
2 模塊使用
2.1 開始使用Multiprocessing
Process類與threading中的Thread類非常相似。讓我們嘗試著創(chuàng)建多個進程,這些進程都會調(diào)用同一個函數(shù),讓我們看看它們是如何工作的,
import osfrom multiprocessing import Processdef doubler(number): result = number * 2 proc = os.getpid() print("{0} double to {1} by process id:{2}\n".format(number,result,proc))if __name__ == "__main__": numbers = [5,10,15,20,25] procs = [] for&nb