python进程的第二种创建方法day17

#创建进程的方法二
from multiprocessing import Process
import os
from urllib import request
#步骤1 ,继承Process
class Process_Class(Process):
    # 因为Process类本身也有init方法,这个子类相当于重写了这个方法,但这样会带来一个问题,我们并没有完全的
    # 初始化一个进程类,所以不能使用这个类继承的一些方法和属性。
    #步骤2 ,使用父类的初始化方法来初始化自己
    def __init__(self,url):
        Process.__init__(self)   #这种方法与 super().__init__()的一种区别是super后没有self
        # super().__init__()
        self.url=url
    #步骤3,重写Process类中的run方法
    def run(self):
        print("~~子进程进行网络请求相应操作~~")
        file_name = self.url.split("/")[-1]  # 获取图片的尾部名字
        response = request.urlopen(self.url)  # 打开url地址并且获取图片信息
        content = response.read()  # 读出图片内容
        with open(file_name, "wb") as fb:  # 把图片写入文件
            fb.write(content)


if __name__ == '__main__':
    url_list=[
        "https://img-ads.csdn.net/2019/201903061715273943.jpg",
        "https://img-ads.csdn.net/2019/201903061737562959.jpg",
    ]
    for url in url_list:
        p=Process_Class(url)
        p.start()          #调用start()时run()会自动运行,所以一般把自己要执行写的代码放到run()里

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/88423425
今日推荐