#使用multiprocessing模块创建多进程import os
from multiprocessing import Process
defrun_proc(name):print('Child process %s (%s) Running...'%(name,os.getpid()))if __name__ =='__main__':print('Parent process %s'%os.getpid())for i inrange(5):
p = Process(target=run_proc,args=(str(i),))print('Process will start')
p.start()
p.join()print('Process end')
Parent process 8436
Process will start
Process will start
Process will start
Process will start
Process will start
Process end
#multiprocessing模块提供一个Pool类来代表进程池对象from multiprocessing import Pool
import os,time,random
defrun_task(name):print('Task %s(pid = %s)is running...'%(name,os.getpid()))
time.sleep(random.random()*3)print('Task %s end'%name)if __name__ =="__main__":print('Current process %s.'%os.getpid())
p = Pool(processes=3)for i inrange(5):
p.apply_async(run_task,args=(i,))print('Waiting for all subprocesses done...')
p.close()
p.join()print('All subprocesses done.')
Current process 8436.
Waiting for all subprocesses done...