from multiprocessing import Process(P必须大写
import os
import time
classSubProcess(Process):
"""创建Process的子类"""
def __init__(self, num, a):
super(SubProcess, self).__init__() # 执行父类Process默认的初始化方法,通过父类的方法,将子进程对象初始化好
self.num = num
self.a = a
def run(self):
"""子进程要执行的代码"""
print("子进程:pid=%d" % os.getpid())
print("子进程:num=%d" % self.num)
print("子进程:a=%d" % self.a)
for i in range(10):
print("子进程:hello")
time.sleep(0.1)
def main():
print("父进程:pid=%d" % os.getpid())
p = SubProcess(100, 200)
p.start() # 真正的创建出子进程,子进程可以开始执行代码
print("父进程:hi")
print("父进程:子进程的名字 %s" % p.name)
print("父进程:子进程的pid %d" % p.pid)
print("父进程:子进程的状态 %s" % p.is_alive())
time.sleep(0.1)
p.terminate() # 终止子进程的执行 存在延迟
print("父进程:已经终止了子进程")
print("父进程:子进程的状态 %s" % p.is_alive())
p.join() # 回收子进程资源 阻塞
print("父进程:已经回收了子进程")
print("父进程:子进程的状态 %s" % p.is_alive())
print("父进程:结束")
if __name__ == '__main__':
main()