queue是python多執行緒安全的佇列實現,封裝了資料結構中的佇列,保證了執行緒之間使用佇列同步資料不會出錯。
也就是說使用queue就不用使用鎖去同步資料。
queue預設構造的大小是無限的,也可以在初始化時指定佇列大小:
queue q(10)
queue的使用函式:
get():獲取佇列頭部元素,並且把佇列中該元素彈出
put(元素):插入元素到佇列尾部
qsize():獲取當前佇列的元素個數
empty():判斷佇列是否為空
queue的預設使用這些函式都是同步阻塞
的,也可以使用設定為非阻塞函式。
預設函式為get(self, block=true, timeout=none),timeout是設定的超時時間,非阻塞下直接返回,不會理會超時時間。queue中其他函式同理,
如果要使用非阻塞的函式,那麼需要這樣寫:get(false, 0),put(元素,false,0)。
要注意的一點是
非阻塞函式會在沒有成功時丟擲異常(比如獲取元素時隊列為空)
,所以使用非阻塞函式要注意接收異常。使用try except可以接收異常。
python爬蟲 多執行緒爬蟲
在進行爬蟲工作的時候,考慮到爬蟲執行的速度慢,那麼怎樣提公升爬蟲的速度呢,那麼就得使用多執行緒爬蟲了,接下來我以糗事百科段子的爬取進行對多執行緒爬蟲的概述 github鏈結 鏈結一 不使用多執行緒爬取糗事百科 1.上 import urllib.request import re headers f...
python多執行緒爬蟲
先記錄一下,普通的糗事百科爬蟲 import urllib.request import re import time import urllib.error headers user agent mozilla 5.0 windows nt 10.0 win64 x64 rv 63.0 gecko...
python多執行緒爬蟲
python多執行緒爬蟲 python單執行緒爬蟲對於應付小規模資料是可以的,但是面對大量資料,我們就要用到多執行緒爬蟲技術。使用多執行緒,一方面可能會加快效率,另一方面可以施加一些小技巧,如不同的執行緒使用不同的 ip從而避免出發反爬機制。python 多執行緒 python的多執行緒可以用thr...