python queue get 方法_Python Queue模块详解
Python3.5中,隊列是線程間最常用的交換數(shù)據(jù)的形式。Queue模塊是提供隊列操作的模塊,雖然簡單易用,但是不小心的話,還是會出現(xiàn)一些意外。
創(chuàng)建一個“隊列”對象
import queue
q = queue.queue(maxsize = 10)
queue.queue類即是一個隊列的同步實現(xiàn)。隊列長度可為無限或者有限。可通過queue的構(gòu)造函數(shù)的可選參數(shù)maxsize來設(shè)定隊列長度。如果maxsize小于1就表示隊列長度無限。
將一個值放入隊列中
q.put(10)
調(diào)用隊列對象的put()方法在隊尾插入一個項目。put()有兩個參數(shù),第一個item為必需的,為插入項目的值;第二個block為可選參數(shù),默認(rèn)為
1。如果隊列當(dāng)前為空且block為1,put()方法就使調(diào)用線程暫停,直到空出一個數(shù)據(jù)單元。如果block為0,put方法將引發(fā)Full異常。
將一個值從隊列中取出
q.get()
調(diào)用隊列對象的get()方法從隊頭刪除并返回一個項目。可選參數(shù)為block,默認(rèn)為True。如果隊列為空且block為True,get()就使調(diào)用線程暫停,直至有項目可用。如果隊列為空且block為False,隊列將引發(fā)Empty異常。
Python queue模塊有三種隊列及構(gòu)造函數(shù):
1、Python queue模塊的FIFO隊列先進(jìn)先出。???? class queue.queue(maxsize)
2、LIFO類似于堆,即先進(jìn)后出。???????????????????????? class queue.Lifoqueue(maxsize)
3、還有一種是優(yōu)先級隊列級別越低越先出來。 ?? class queue.Priorityqueue(maxsize)
此包中的常用方法(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í)行別的操作
總結(jié)
以上是生活随笔為你收集整理的python queue get 方法_Python Queue模块详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: timertask run函数未执行_函
- 下一篇: 登录页面html代码_【网络自动化平台开