Py之Queue:python庫之Queue的簡介,、安裝,、使用方法之詳細(xì)攻略
Queue的簡介
? ? ? python標(biāo)準(zhǔn)庫中帶有一個Queue模塊,顧名思義,隊列。該模塊也衍生出一些基本隊列不具有的功能,。隊列是線程間最常用的交換數(shù)據(jù)的形式,。Queue模塊是提供隊列操作的模塊,。在python中,多個線程之間的數(shù)據(jù)是共享的,多個線程進(jìn)行數(shù)據(jù)交換的時候,不能夠保證數(shù)據(jù)的安全性和一致性,所以當(dāng)多個線程需要進(jìn)行數(shù)據(jù)交換的時候,隊列就出現(xiàn)了,隊列可以完美解決線程間的數(shù)據(jù)交換,保證線程間數(shù)據(jù)的安全性和一致性,。
Queues
Queue的安裝
import queue ? #python內(nèi)部自帶直接導(dǎo)入即可
Queue的使用方法
1、queue模塊有三種隊列及構(gòu)造函數(shù)
- class queue.Queue(maxsize) ? ? ? ? ? ? ? ? #Python queue模塊的FIFO隊列先進(jìn)先出,。
- class queue.LifoQueue(maxsize) ? ? ? ? ? #LIFO類似于堆,即先進(jìn)后出,。
- class queue.PriorityQueue(maxsize) ? ? ?#還有一種是優(yōu)先級隊列級別越低越先出來。
此包中的常用方法(q =queue.queue()):
q.qsize() 返回隊列的大小
q.empty() 如果隊列為空,返回True,反之False
q.full() 如果隊列滿了,返回True,反之False
q.full 與 maxsize 大小對應(yīng)
q.get([block[, timeout]]) 獲取隊列,timeout等待時間
q.get_nowait() 相當(dāng)q.get(False)
非阻塞 q.put(item) 寫入隊列,timeout等待時間
q.put_nowait(item) 相當(dāng)q.put(item, False)
q.task_done() 在完成一項工作之后,q.task_done() 函數(shù)向任務(wù)已經(jīng)完成的隊列發(fā)送一個信號
q.join() 實際上意味著等到隊列為空,再執(zhí)行別的操作
queue.qsize() 返回隊列的大小
queue.empty() 如果隊列為空,返回True,反之False
queue.full() 如果隊列滿了,返回True,反之False
queue.full 與 maxsize 大小對應(yīng)
queue.get([block[, timeout]])獲取隊列,timeout等待時間
queue.get_nowait() 相當(dāng)queue.get(False)
queue.put(item) 寫入隊列,timeout等待時間
queue.put_nowait(item) 相當(dāng)queue.put(item, False)
queue.task_done() 在完成一項工作之后,queue.task_done()函數(shù)向任務(wù)已經(jīng)完成的隊列發(fā)送一個信號
queue.join() 實際上意味著等到隊列為空,再執(zhí)行別的操作
參考文章
Python Queue模塊詳解