1 模塊簡(jiǎn)介

multiprocessing模塊在Python2.6中引入。最初的multiprocessing是由Jesse Noller和Richard Oudkerk在PEP 371中定義。就像你可以在threading模塊中使用多個(gè)線程一樣,multiprocessing模塊允許你使用多個(gè)進(jìn)程。當(dāng)你使用多個(gè)進(jìn)程時(shí),你可以避免GIL鎖,并充分利用機(jī)器的多處理器。

multiprocessing庫(kù)包括一些沒(méi)有在threading模塊中出現(xiàn)的API。例如,你可以使用Pool類(lèi)在多個(gè)輸入上并行執(zhí)行一個(gè)函數(shù)。我們將在后面的章節(jié)提到Pool。我們先從multiprocessing中的Process類(lèi)開(kāi)始。

2 模塊使用

2.1 開(kāi)始使用Multiprocessing

Process類(lèi)與threading中的Thread類(lèi)非常相似。讓我們嘗試著創(chuàng)建多個(gè)進(jìn)程,這些進(jìn)程都會(huì)調(diào)用同一個(gè)函數(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)友評(píng)論