上次了解過(guò)了多線程的代碼應(yīng)用,在python中還有另一種運(yùn)行方式“多進(jìn)程”,其也是讓程序同時(shí)運(yùn)行,與多線程的區(qū)別在于,每一個(gè)進(jìn)程中都有自己的內(nèi)存,變量之間不互通,進(jìn)程與進(jìn)程之前訪問(wèn)必須要有一個(gè)中間代理。
下面看一個(gè)多進(jìn)程的例子,也是和之前一樣調(diào)用相同的方法
import multiprocessing
def worker(num):
"""該函數(shù)將在子進(jìn)程中執(zhí)行"""
print('Worker %d' % num)
if __name__ == '__main__':
# 創(chuàng)建進(jìn)程池
pool = multiprocessing.Pool(4)
# 啟動(dòng)進(jìn)程池中的進(jìn)程
pool.map(worker, range(10))
# 關(guān)閉進(jìn)程池
pool.close()
# 等待進(jìn)程池中的進(jìn)程結(jié)束
pool.join()
同時(shí)打印work0-9 進(jìn)程同時(shí)執(zhí)行