from multiprocessing import Process import time # def task(name): # print("%s start" % name) # time.sleep(3) # # print("%s stop" % name) # # if __name__ == '__main__': # p = Process(target=task,args=("jerry",)) # p.start() # p.join(3) #父进程必须等到子进程完成后才能继续执行 可设置等待超时时间 # print("我是主进程!!!") #——————————————————————————————————————- def task(i): print("%s start" % i) # time.sleep(2) # print("%s stop" % i) if __name__ == '__main__': for i in range(1,11): #开启多个子进程 p = Process(target=task,args=(i,)) p.start() print("主进程!!!!") # for i in range(1,11): 等同于下面: # p1=Process(target=task,args=(1,)) # p2=Process(target=task,args=(2,)) # p3=Process(target=task,args=(3,)) # p1.start() # p2.start() # p3.start() #——————————————————————————————————————— # 我们的代码只负责 通知操作系统创建进程 创建完就继续其他代码 # 但是操作系统什么时候创建完成 什么时候执行我们无法预知无法控制 # def task(i): # print("%s start" % i) # time.sleep(2) # print("%s stop" % i) # # if __name__ == '__main__': # start_time = time.time() # ps = [] # for i in range(1,3): # p = Process(target=task,args=(i,)) # p.start() # ps.append(p) # # 主进程等子进程结束 # for p in ps: # p.join() # # print("主进程!!!!",time.time()-start_time)
重点: join()让父进程在原地等待。