创建进程 以写一个类继承Process的方式

注意:1)创建的进程一定要继承Process类
2) Process.init(self) :因为Process类本身也有__init___方法,这个子类相当于重写了这个方法。
但这样会带来一个问题,我们并没有完成的初始化一个进程类,所以就不能使用这个类继承的一 些方法和属性。

from multiprocessing import Process
import os
from urllib import request
class MyProcess(Process):
    def __init__(self,url):#初始化时添加URL参数
        Process.__init__(self)#使用父类的构造函数让父类帮你实现初始化,括号里记得写self
        self.url=url
    def run(self):
        print('当前进程id:',os.getpid(),"父进程id:",os.getppid())#得到当前进程的id 以及父进程的id
        filename=self.url.split('/')[-1]#字符串切割得到“xxx.png”的文件名格式
        response=request.urlopen(self.url)#请求后返回响应
        content=response.read()#获得得到返回的内容
        with open(filename,'wb') as fp:#以二进制写入文件
            fp.write(content)

if __name__ == '__main__':
    url_list=[#URL列表
        'https://p0.ssl.qhimg.com/t01eda6f6a63c17d58c.gif',
        'http://ddd.ansusu.cn/shipin/picture/bottom_large_img.png'
    ]
    for i in url_list:#循环创建进程
        myprocess=MyProcess(i)
        myprocess.start()#进程start

猜你喜欢

转载自blog.csdn.net/qq_39062888/article/details/88429141