進(jìn)程池
實例如下:
import multiprocessing
import time
# 復(fù)制任務(wù)
def copy_work():
print("正在復(fù)制中..", multiprocessing.current_process().pid)
time.sleep(0.001)
# 進(jìn)程池: 池子里面放的都是進(jìn)程,進(jìn)程的創(chuàng)建有進(jìn)程池負(fù)責(zé)爱葵,執(zhí)行任務(wù)的時候循環(huán)利用指定進(jìn)程大小個數(shù)執(zhí)行對應(yīng)的任務(wù)
if __name__ == '__main__':
# 創(chuàng)建進(jìn)程池 3: 進(jìn)程池中進(jìn)程的最大個數(shù)
pool = multiprocessing.Pool(3)
# 模擬大批量的復(fù)制任務(wù)记焊,讓進(jìn)程池去執(zhí)行
for i in range(10):
# apply表示同步執(zhí)行,表示一個任務(wù)執(zhí)行完成另外一個任務(wù)才能執(zhí)行
# pool.apply(copy_work)
# apply_async:表示異步執(zhí)行,異步是不會等待其它任務(wù)執(zhí)行完成以后再去執(zhí)行疾呻,多個任務(wù)一起執(zhí)行
pool.apply_async(copy_work)
# 關(guān)閉進(jìn)程池澈歉,不再接收其它任務(wù)
pool.close()
# 主進(jìn)程等待進(jìn)程池執(zhí)行完成以后再退出
pool.join()