一、示例代码:
from multiprocessing import Process
import time
import os
class SubProcess(Process):
def __init__(self, interval):
Process.__init__(self)
self.interval = interval
def run(self):
print('子进程(%s)开始执行,父进程为(%s)' % (os.getpid(), os.getppid()))
t_start = time.time()
time.sleep(self.interval)
t_end = time.time()
print("子进程(%s)执行时间为'%0.1f'秒" % (os.getpid(), t_end - t_start))
if __name__ == '__main__':
print('————父进程开始执行————')
print('父进程PID:%s' % os.getpid())
p1 = SubProcess(interval=1)
p2 = SubProcess(interval=2)
p1.start()
p2.start()
print('p1.name=%s' % p1.name)
print('p1.pid=%s' % p1.pid)
print('p2.name=%s' % p2.name)
print('p2.pid=%s' % p2.pid)
print('————等待子进程————')
p1.join()
p2.join()
print('————父进程执行结束————')
二、代码要点注释:
首先定义了子类SubProcess,继承了父类multiprocessing.Process。子类中定义了两个方法:__init__()构造方法与run()方法。在子类构造方法中,调用了父类的构造方法。此外,在子类中并未定义start()方法,但在主进程中调用了start()方法,此时就会自动执行子类SubProcess的run()方法。