大纲
- 使用多进程的原因
- 创建多进程的两种方式
- 守护进程
使用多进程的原因
由于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)和注释后两种结果演示