标签:fun start rom from bsp 一个 for 创建 打印
# join() # 阻塞等待子进程的结束 import time from multiprocessing import Process # =========运行完了和10个*是会先被打印的,20个*后面再打印 # def func(arg1, arg2): # print(‘*‘ * arg1) # time.sleep(5) # print(‘*‘ * arg2) # # if __name__ == ‘__main__‘: # p = Process(target=func, args=(10, 20)) # p.start() # print(‘===========: 运行完了‘) # 现在想让20个*打印完了,在执行父进程的===运行完了 # =========运行完了和10个*是会先被打印的,20个*后面再打印 def func(arg1, arg2): print(‘*‘ * arg1) time.sleep(5) print(‘*‘ * arg2) if __name__ == ‘__main__‘: p = Process(target=func, args=(10, 20)) p.start() # 启动子进程 print(‘hahaha‘) p.join() # 阻塞等待子进程的结束 print(‘===========: 运行完了‘)
2.开启多个进程的方法
# 同时开启多个子进程 import time import os from multiprocessing import Process # 开启多进程的一种方法 # def func(arg1, arg2): # print(os.getpid(), ‘*‘ * arg1) # time.sleep(5) # print(os.getpid(), ‘*‘ * arg2) # # if __name__ == ‘__main__‘: # p1 = Process(target=func, args=(5, 10)) # p2 = Process(target=func, args=(4, 6)) # # p1.start() # p2.start() # # # for i in range(10): # # p = Process(target=func, args=(2 * i, 5 *i)) # # p.start() # # print(‘haha‘) # # p1.join() # p2.join() # # print(‘父进程执行完了‘) # -------------------------------------------------------- # # 开启多进程的方法也可以用for,但无法使得子进程全部结束后再打印父进程执行完了 # def func(arg1, arg2): # print(os.getpid(), ‘*‘ * arg1) # time.sleep(5) # print(os.getpid(), ‘*‘ * arg2) # # if __name__ == ‘__main__‘: # for i in range(10): # p = Process(target=func, args=(2 * i, 5 *i)) # p.start() # # print(‘父进程执行完了‘) # 开启多进程的方法也可以用for,此种方法可使得子进程全部结束后再打印父进程执行完了 def func(arg1, arg2): print(os.getpid(), ‘*‘ * arg1) time.sleep(5) print(os.getpid(), ‘*‘ * arg2) if __name__ == ‘__main__‘: p_lst = [] # 创建了一个list for i in range(10): p = Process(target=func, args=(2 * i, 5 *i)) p_lst.append(p) # 将创建的每个子进程对象加入到list列表中 p.start() [p.join() for p in p_lst] # 遍历列表中的每个子进程对象,都调用join()阻塞等待子进程的结束 print(‘父进程执行完了‘)
标签:fun start rom from bsp 一个 for 创建 打印
原文地址:https://www.cnblogs.com/whylinux/p/9800584.html