创建进程的第二种方法

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)
        self.url = url

    #步骤3:重写Process类中的run方法
    def run(self):
        print('当前进程id:', os.getpid(), os.getppid())

        # 文件名
        file_name = self.url.split('/')[-1]

        # 网络请求
        response = request.urlopen(self.url)  # 一个响应对象

        # 获取响应的内容
        content = response.read()

        # 保存
        with open(file_name, 'wb') as fp:
            fp.write(content)

if __name__ == '__main__':
    url_list = [
        'https://www.baidu.com/img/baidu_jgylogo3.gif',
        'http://www.offcn.com/statics/images/zgimg/index2019.png'
    ]
    for url in url_list:
        p = Process_Class(url)
        p.start()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值