Python多进程中的run方法

在多线程的介绍中,介绍了可以自定义多线程类,并且重写多线程类的run方法,实现了第二种使用多线程的方式

在多进程中,也可以自定义多进程类,是通过重写多进程类的run方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import multiprocessing

class MyProcess(multiprocessing.Process):
def __init__(self, func, args):
# 将函数名和参数封装到本类中
self.func = func
self.args = args
# 为保证继承的类正常运行,这里需要执行父类的构造方法
# 但是没有给父类的构造方法传递任何参数
# 而对象寻找参数时,也是最先从本类中寻找
super(MyProcess, self).__init__()

def run(self):
# 执行参数中的函数
self.func(*self.args)

# 自定义一个需要子进程运行的函数
def f(*args):
print(args)

# 使用自定义的进程对象执行
p = MyProcess(func=f, args=(59,15))
p.start()

进程p调用start()时,自动调用run()