创建进程的第二种方法,以后很多都用这个方法。

# _*_ coding:utf-8 _*_
# __author__ = "巴豆"
# Email: wjywinner@126.com

import os
import time
from multiprocessing import Process # 引入multiprocessing中的Process模块。


class Myprocess(Process): # 自定一个Myprocess类,继承Process类。
def __init__(self,n,name): # 要想传递参数,必须写__init__方法,在这个方法里才能传递参数。
super().__init__() # 但是由于父类Process的__init__方法进行了某些操作,自己重写__init__方法会覆盖父类的方法,所以在这里还必须要用到super函数,来调用父类的__init__方法,这样父类的__init__方法进行的操作就都有了。
self.n = n # 这是传递进来的参数,可以很方便的使用了。
self.name = name # 这是传递进来的子进程的名称,同样使用方便。总之,就是传递参数。

def run(self): # 创建进程还必须自己写出run方法,必须写。因为必须调用这个方法才能创建进程。
print('子进程的id号:',os.getpid())
print('传递的参数',self.n)

if __name__ == '__main__':
p1 = Myprocess(100,name='取个什么名字好呢?') # 自己创建的i进程,可以给定一个自己喜欢的名称。
p1.start() # 进程开始执行,进行两件事。1,给操作系统发一个创建进程的指令,然后由操作系统去创建进程。2,子进程创建好以后,就会执行run方法。
time.sleep(5) #这句话我自己胡乱加的,没意义。
print('打印我自己决定的传递过去的子进程名:',p1.name) # 调用传递的子进程名
print('打印得到的子进程的id号:',p1.pid) # 调用子进程的id号。
print('主进程结束')











原文地址:https://www.cnblogs.com/wjywinner/p/10538414.html