python多进程
#导入模块 from multiprocessing import Pool import time,os,random #创建一个测试函数subFunc def subFunc(param,ppid): sleepTime = random.randint(1,10) print('Begin %s subProcess,and will wait %s,subPID is %s,mainPID is %s'%(param,sleepTime,os.getpid(),ppid)) time.sleep(sleepTime) print('End %s subProcess...'%param) if __name__ == '__main__': param = 5 print('Begin mainProcess...') #创建进程池 p = Pool(5) for i in range(param): p.apply_async(subFunc,args=(i+1,os.getpid(),)) #关闭进程 p.close() #等待子进程结束后在执行后续命令 p.join() print('End mainProcess...')
示例2
#coding: utf-8 import multiprocessing def m1(x): return(x*x) if __name__ == '__main__': pool = multiprocessing.Pool(multiprocessing.cpu_count()) i_list = range(8) res = pool.map(m1, i_list) pool.close() pool.join() print(res)