1. 程式人生 > >父進程等待子進程結束

父進程等待子進程結束

設置 們的 pan 負責 ESS rom 通知操作 process bsp

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()讓父進程在原地等待。

父進程等待子進程結束