大纲
- 使用多进程的原因
- 创建多进程的两种方式
- 守护进程
使用多进程的原因
由于python中的多线程无法利用多核优势,如果想要利用CPU多核资源,需要使用多进程。
创建多进程
- Process([target [, args [, name [, kwargs]]]])
- # target 表示子进程要执行的任务
- # args 元组参数
- # kwargs 字典参数
- # name 表示子进程的名称
- # 方式一
- import time
- from multiprocessing import Process
- def run(name):
- print('{0} 开始跑步'.format(name))
- time.sleep(2)
- print('{0} 跑步结束'.format(name))
- p1 = Process(target=run, args=('小华', ))
- p2 = Process(target=run, args=('小米', ))
- p3 = Process(target=run, args=('小中', ))
- p1.start()
- p2.start()
- p3.start()
方式一演示结果
- # 方式二
- import time
- from multiprocessing import Process
- class Run(Process):
- def __init__(self, name):
- Process.__init__(self)
- self.name = name
- def run(self):
- print('{0} 开始跑步'.format(name))
- time.sleep(2)
- print('{0} 跑步结束'.format(name))
- p1 = Run('小华')
- p2 = Run('小米')
- p3 = Run('小中')
- p1.start()
- p2.start()
- p3.start()
方式二演示结果
守护进程
守护进程会在主进程代码执行结束后就终止。如果子进程的任务在主进程任务结束后就没有存在的必要了,那么该子进程应该在开启前就被设置成守护进程。主进程代码运行结束,守护进程随即终止。
启用time.sleep(3)和注释后两种结果演示