黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

python 實現(xiàn)多進(jìn)程

系統(tǒng) 2278 0

方法一:

            
              from urllib import request
from multiprocessing import Process
import os
#下載器函數(shù)
def downloader(url,**kwargs):
    print('當(dāng)前進(jìn)程id:',os.getpid(),os.getppid())
    #os.getpid()獲取當(dāng)前進(jìn)程id,os.getppid()獲取當(dāng)前進(jìn)程父進(jìn)程id
    print('關(guān)鍵字參數(shù):',kwargs['pro'])
    #文件名
    file_name = url.split('/')[-1]
    #網(wǎng)絡(luò)請求
    response = request.urlopen(url)#一個響應(yīng)對象
    #獲取響應(yīng)的內(nèi)容
    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'
    ]
    name_list = ['進(jìn)程1--張翠花','進(jìn)程2---趙鐵蛋']
    p_list = []#進(jìn)程列表
    i = 0
    for url in url_list:
        n = name_list[i]
        i = i+1
        p = Process(target=downloader,name=n,args=(url,),kwargs={'pro':"最高等級"})
        print('子進(jìn)程(%s)將要被運行~!'%p.name)
        p.start()
        p_list.append(p)

    for p in p_list:
        p.join()#對所有子進(jìn)程加上阻塞,等到子進(jìn)程全部執(zhí)行完畢,再繼續(xù)執(zhí)行主進(jìn)程

    print('主進(jìn)程id:',os.getpid())

    #確保這一句代碼在所有子進(jìn)程結(jié)束
    print('~~~~~~~~~~~~~~~~~~~~所有文件下載完成!~~~~~~~~~~~~~~~~~~~~~~~')

            
          

方法二

            
              from multiprocessing import Process
import os
from urllib import request

#步驟1:繼承Process類
class Process_Class(Process):

    # 因為Process類本身也有__init___方法,這個子類相當(dāng)于重寫了這個方法。
    # 但這樣會帶來一個問題,我們并沒有完成的初始化一個進(jìn)程類,所以就不能使用這個類繼承的一些方法和屬性。
    #步驟2:使用父類初始化方法初始子類
    def __init__(self,url):
        Process.__init__(self)
        self.url = url

    #步驟3:重寫Process類中的run方法
    def run(self):
        print('當(dāng)前進(jìn)程id:', os.getpid(), os.getppid())

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

        # 網(wǎng)絡(luò)請求
        response = request.urlopen(self.url)  # 一個響應(yīng)對象

        # 獲取響應(yīng)的內(nèi)容
        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()


            
          

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論