當前位置:首頁 » 編程語言 » python多線程下載

python多線程下載

發布時間: 2022-08-23 19:51:53

『壹』 python多線程作用

總結起來,使用多線程編程具有如下幾個優點:
進程之間不能共享內存,但線程之間共享內存非常容易。
操作系統在創建進程時,需要為該進程重新分配系統資源,但創建線程的代價則小得多。因此,使用多線程來實現多任務並發執行比使用多進程的效率高。
Python 語言內置了多線程功能支持,而不是單純地作為底層操作系統的調度方式,從而簡化了 Python 的多線程編程。

在實際應用中,多線程是非常有用的。比如一個瀏覽器必須能同時下載多張圖片;一個 Web 伺服器必須能同時響應多個用戶請求;圖形用戶界面(GUI)應用也需要啟動單獨的線程,從主機環境中收集用戶界面事件……總之,多線程在實際編程中的應用是非常廣泛的。

『貳』 python 多線程

python支持多線程效果還不錯,很多方面都用到了python 多線程的知識,我前段時間用python 多線程寫了個處理生產者和消費者的問題,把代碼貼出來給你看下:
#encoding=utf-8
import threading
import random
import time
from Queue import Queue

class Procer(threading.Thread):

def __init__(self, threadname, queue):
threading.Thread.__init__(self, name = threadname)
self.sharedata = queue

def run(self):
for i in range(20):
print self.getName(),'adding',i,'to queue'
self.sharedata.put(i)
time.sleep(random.randrange(10)/10.0)
print self.getName(),'Finished'

# Consumer thread

class Consumer(threading.Thread):

def __init__(self, threadname, queue):
threading.Thread.__init__(self, name = threadname)
self.sharedata = queue

def run(self):

for i in range(20):
print self.getName(),'got a value:',self.sharedata.get()
time.sleep(random.randrange(10)/10.0)
print self.getName(),'Finished'

# Main thread

def main():

queue = Queue()
procer = Procer('Procer', queue)
consumer = Consumer('Consumer', queue)
print 'Starting threads ...'
procer.start()
consumer.start()
procer.join()
consumer.join()
print 'All threads have terminated.'
if __name__ == '__main__':
main()

如果你想要了解更多的python 多線程知識可以點下面的參考資料的地址,希望對有幫助!

『叄』 python如何實現文件的下載,請盡量詳細,高分!!!

import os,urllib.request,re
os.chdir(r'd:')

data = urllib.request.urlopen(url).read()
with open(filename, 'wb') as f:
f.write(data)

url就是你要下載的文件鏈接,filename就是下載後保存的文件名。這段代碼是把文件下載在d盤根目錄下,你可以自己修改。

不過是單線程的,想要多線程下載,比較復雜,我沒有試過,這個下載小文件還是沒有問題的。

『肆』 python如何加速下載ZiP文件

想要加速zip文件的下載,就必須要用到python的多線程處理能力,常用的庫是 threading。默認情況下,該庫Python會默認安裝,因此可以直接在代碼中導入。
下載時根據文件的size,切分成幾個線程分別下載文件,下載完成以後再拼接到一起。

『伍』 python 怎麼實現多線程的

線程也就是輕量級的進程,多線程允許一次執行多個線程,Python是多線程語言,它有一個多線程包,GIL也就是全局解釋器鎖,以確保一次執行單個線程,一個線程保存GIL並在將其傳遞給下一個線程之前執行一些操作,也就產生了並行執行的錯覺。

『陸』 python3 做一個多線程下載文件的程序 多線程問題

可以用is_active來判斷。
不過你可以預分配文件空間,直接寫,主要不沖突就行了。

『柒』 python多線程的一些問題

#隨便寫了下沒有驗證有問題追問
importurllib
importthreading
classDownPic(threading.Thread):
def__init__(self,url,savePath):
self.url=url
self.savePath=savePath
defreporthook(self,bk,bs,size):
print"Downloading%.2f%%"%(bk*bs/size*100),sys.stdout.write(" "),
defgetPic(self,url=self.url,savePath=self.savePath):
urllib.urlretrieve(url,savePath,self.reporthook)
defrun(self):
self.getPic()

if__name__=="__main__":
urlList={1,2,3,4,5}#replacewithyoururlList
savePath="d:/1.jpg"#replacewithyoursavePath
forurlinurlList:
down=DownPic(url,savePath)
down.start()

『捌』 python多線程並發訪問多個URi

我想問問看你說的」訪問一個站點「是什麼意思,是下載一個文件嗎?還是需要submit一些表單上去還是其他什麼訪問法?還有多線程是用來干什麼的?是多個線程同時下載一個文件讓這個文件可以下載得更快嗎?還是其他什麼目的?
本身python訪問web就很簡單,urllib的幾個函數一調用就好了,不過不清楚你想要做什麼,所以我感覺不知道怎麼回答你。

『玖』 Python 多線程並發控制問題

python線程有兩種,類或者函數
後者很簡單,就跟pthread一樣用啊。
不要列印就好了,或者你自己維護一個print加個自旋鎖
第三個從但是開始就沒看懂
既然要加print那一定要加鎖了,否則是沒辦法
既然你想搞一個控制線程,那就由它來列印咯

熱點內容
電影的文件夾都是 發布:2025-01-18 08:21:49 瀏覽:834
post提交php 發布:2025-01-18 08:21:42 瀏覽:460
如何禁止寫入文件夾 發布:2025-01-18 08:21:04 瀏覽:362
360雲盤等待上傳 發布:2025-01-18 08:21:03 瀏覽:795
安卓手機怎麼設置壁紙 發布:2025-01-18 08:20:23 瀏覽:318
如何關閉密碼鎖 發布:2025-01-18 08:18:51 瀏覽:858
我的電腦ftp打不開 發布:2025-01-18 08:18:05 瀏覽:512
手機如何與伺服器端連接的 發布:2025-01-18 08:16:49 瀏覽:45
為什麼安卓手機玩游戲沒有聲音 發布:2025-01-18 08:11:56 瀏覽:420
androidtextview字體 發布:2025-01-18 07:51:18 瀏覽:555