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("小丽在吃饭")