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
        
		

網(wǎng)友評論