02-进程的创建-multiprocessing
目标¶
- 知道使用 multiprocessing.Process 类能够创建进程对象
- 能够 multiprocessing.Process 的 target 参数能够指定进程执行的任务函数
multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另外的事情
1. 创建子进程¶
import multiprocessing
import time
# 定义函数
def work1():
for i in range(10):
print("work1----", i)
time.sleep(0.5)
if __name__ == '__main__':
# 创建进程
# 1. 导入 multiprocessing 模块
# 2. multiprocessing.Process() 创建子进程
# 3. start() 方法启动进程
p1 = multiprocessing.Process(group=None, target=work1)
p1.start()
for i in range(10):
print("这是主进程", i)
time.sleep(0.5)
说明¶
-
创建子进程跟创建线程十分类似,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动
-
Process语法结构如下:
Process([group [, target [, name [, args [, kwargs]]]]])
- target:如果传递了函数的引用,这个子进程就执行这里(函数)的代码
- args:给target指定的函数传递的参数,以元组的方式传递
- kwargs:给target指定的函数传递命名参数
- name:给进程设定一个名字,可以不设定
- group:指定进程组,大多数情况下用不到
Process创建的实例对象的常用方法:
- start():启动子进程实例(创建子进程)
- is_alive():判断进程子进程是否还在活着
- join([timeout]):是否等待子进程执行结束,或等待多少秒
- terminate():不管任务是否完成,立即终止子进程
Process创建的实例对象的常用属性:
- name:当前进程的别名,默认为Process-N,N为从1开始递增的整数
- pid:当前进程的pid(进程号)