日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python多进程怎么样_Python执行多进程任务的方法

發布時間:2023/12/9 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python多进程怎么样_Python执行多进程任务的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python的多進程可以借助from multiprocessing import Pool來實現。

簡而言之分為這樣幾步:

導入包from multiprocessing import Pool

編寫任務函數。def 任務函數(參數)

實例化進程池并設置進程數。pool=Pool(欲設置的進程數)

開始布置任務,把多個任務添加進多進程池。pool.apply_async(任務函數,函數對應的參數元組)

關閉進程池的打包。pool.close()

開始執行多進程。pool.join()

具體使用方式詳見代碼:

import requests

from multiprocessing import Pool

def mission(url,n): #多進程要調用的任務函數,這里我把視頻的編號也帶上留作打印

print(url,"say hi") #來個標記,打印視頻的URL

response=requests.get(url) #請求視頻內容

f=open(f"./%03d.ts"%n,"wb") #打開空文件

f.write(response.content) #寫入下載內容到空的視頻文件中

f.close() #寫入結束

print("%03d.ts OK..."%n) #打印告知視頻已寫入完畢

if __name__ == "__main__":

pool=Pool(10) #設置10個進程

for n in range(1,7): #我有6小段視頻等待爬取

url = f"https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-{n}.ts"

pool.apply_async(mission,(url,n)) #任務函數、視頻、編號打包進多進程池里

pool.close() #打包完畢

pool.join() #開始執行多進程

綜上所述。多進程需要這幾步:

from multiprocessing import Pool

編寫任務函數。這里我們用的是def mission(url,n):

實例化,設置進程數。這里我們用的是pool=Pool(10) #設置10個進程

把多個任務添加進多進程池。這里我們用的是for循環配合pool.apply_async(mission,(url,n))來添加進去,注意apply_async的使用方法是apply_async(任務函數,函數對應的參數元組)。

打包完畢,關閉打包。pool.close()

開始執行多進程。pool.join()

運行結果:

https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-1.ts say hi

https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-2.ts say hi

https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-4.ts say hi

https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-3.ts say hi

https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-6.ts say hi

https://fable.vzaar.com/v4/usp/vz7b388613953b4867b8ea4436f03475ea/16997578.ism/16997578-audio_eng=123960-video_eng=511000-5.ts say hi

006.ts OK...

004.ts OK...

002.ts OK...

005.ts OK...

003.ts OK...

001.ts OK...

可見,由于下載和寫入文件的速度快慢對每個進程的執行時間是有影響的……

總結

以上是生活随笔為你收集整理的python多进程怎么样_Python执行多进程任务的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。