1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| from multiprocessing import Pool import os, time, random
def run(name): print("子进程%s启动--%s"%(name,os.getpid())) start =time.time() time.sleep(random.choice([1,2,3])) end = time.time() print("子进程%s结束--%s耗时%.2f" % (name, os.getpid(),end-start))
if __name__ =="__main__": print("父进程启动")
#创建多个进程 #进程池 #表示可以同时执行的进程数量,看有多少线程 #Pool默认大小是CPU核心数4核8处理器,就是同时处理8个进程 pp =Pool() for i in range(10): #创建进程,放入进程池统一管理 pp.apply_async(run,args=(i,)) #自定义创建进程名字参数1 pp.apply_async(run,args=("11",)) pp.apply_async(run,args =("test",))
#在调用join之前必须先调用close,并且调用close之后就不能再继续添加新的进程了 pp.close() #进程池对象调用的join,会等待进程中的所有的子进程结束完毕再去执行父进程 pp.join()
print("父进程结束")
|