from multiprocessing import Pool import os import time def worker(num): print("task <%s> is runing <%d>" % (os.getpid(), num)) time.sleep(2) def main(): # 定義一個程式池,最大程式數3 po = Pool(3) for i in range(0, 10): # Pool().apply_async(要呼叫的目標,(傳遞給目標的引數元祖,)) # 每次迴圈將會用空閒出來的子程式去呼叫目標 po.apply_async(worker, args=(i,)) print("---start---") # 關閉程式池,關閉後po不再接收新的請求 po.close() # 等待po中所有子程式執行完畢,必須放在close語句之後 po.join() print("---end---") if __name__ == `__main__`: main()