多进程multiprocessing模块,及join的用法

 1 from multiprocessing import Process
 2 
 3 def func(name):
 4     print(name, "在吃饭")
 5 
 6 if __name__ == '__main__':
 7     a = Process(target=func, name = "吃饭", args=("小明", ))     # 此处,args参数是元组形式,
 8     # 实例化一个进程
 9     b = Process(target=func, args=("小红", ))     # 此处,args参数是元组形式,
10     # 在实例化一个进程
11     a.daemon = True  # 设置a进程为守护进程,进程启动前设置,(守护进程是伴随主程序代码结束而结束)可用在监测主进程运行状态
12     a.start()   # 开启一个进程(只是给操作系统发送请求,开启一个进程,就不管了)
13     b.start()
14     print(a.pid)    # 打印进程a的的PID号14672(身份证号)
15     print(b.pid)        # 8764
16     a.terminate()   # 终止(杀死)进程
17     print(a.is_alive())        # 判断进程是否存活
18     print(a.name)       # 进程a的名字  自定义的:吃饭
19     print(b.name)       # b进程的名字  默认的名字:Process-2
20     print("小丽在吃饭")
21     # 三个进程之间,开启时间顺序不一,没有先后

接下来是join的用法:

 join是把下面,非join代码,都当成主进程..要在本进程执行结束后,在执行主进程

 1 from multiprocessing import Process
 2 
 3 def func(name):
 4     print(name, "在吃饭")
 5 
 6 if __name__ == '__main__':
 7     a = Process(target=func, args=("小明", ))
 8 
 9     b = Process(target=func, args=("小红", ))
10 
11     c = Process(target=func, args=("小刚",))
12 
13 
14     b.start()
15     b.join()    # 下面的代码,要在b进程执行结束,再执行
16 
17     a.start()
18     c.start()
19     a.join()    # 多个join连在一起,就无需等相互间执行的结果(最终都是相对于主进程)
20     c.join()
21 
22     print("小丽在吃饭")
原文地址:https://www.cnblogs.com/NoteBook3013/p/10446811.html