近期在研究一篇用python語言批量探測**指令碼時,這個指令碼值得研究的的是用了queue和threading的第三方庫
queue.queue()是一種先進先出(fifo)的資料結構。它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。
queue.queue.put() 寫入佇列,queue.queue.get()獲取寫入的佇列,queue.queue.empty() 如果隊列為空,返回true,反之false。
1import
queue
2 q =queue.queue()
3for i in range(5):
4q.put(i)
5while
notq.empty():
6print
(q.get())
執行結果01234
threading是乙個執行緒的庫
1import
time
2import
threading
3def
test():
4print("
批量執行")
5 time.sleep(5)6if
__name__ == "
__main__":
7for i in range(5):
8 t = threading.thread(target=test())
9 t.start() #
啟動執行緒,即讓執行緒開始執行
執行結果批量執行
批量執行
批量執行
批量執行
批量執行
queue用於建立和操作佇列,常和threading類一起用來建立乙個簡單的執行緒佇列
1import
queue
2import
time
3import
threading
45 q =queue.queue()67
8def
test():
9for i in range(2):
10q.put(i)
11while
notq.empty():
12print(q.get(),"
批量執行")
1314 time.sleep(5)
15if
__name__ == "
__main__":
16for i in range(2):
17 t = threading.thread(target=test())
18 t.start()
0 批量執行1 批量執行
0 批量執行
1 批量執行
python 執行緒佇列
1.先進先出 bin python encoding utf8 import queue 執行緒佇列 q queue.queue 模式 1.先進先出,2,後進先出,3.優先順序 q queue.queue 5 5 表示可以放5個資料 q.put 12 q.put hell q.put while 1...
python 執行緒佇列
佇列是一種資料結構,是資料安全的,資料安全的。佇列能幹的事情列表都能幹。列表是執行緒不安全的,所以可以說佇列是針對多執行緒出現的。資料結構是用來儲存資料用的,只不過各種資料結構的儲存方式不同。比如 集合 佇列 對映 列表 按索引值儲存 字典 按key值的雜湊表儲存 list.pop 按索引刪除 li...
python佇列執行緒池 Python多執行緒與佇列
多執行緒爬蟲對比單執行緒爬蟲有很大的優勢,雖然python中的多執行緒並不是真正意義上的多執行緒,執行緒不可以同時執行,而是順序序列執行的,只是在乙個執行緒在等待時,cpu切換到另外乙個執行緒接著幹活,這樣看起來就感覺像是並行。雖然如此,多執行緒的效率仍然比單執行緒快上很多倍,是爬蟲中不可缺少的技能...