Queue

 

import Queue
q = Queue.Queue(2)
print q.empty()
q.put('eeee')
q.put('bb')
print q.qsize()  #返回值爲2
q.get() #get一個,則Queue中會空出來一個位置 print q.qsize()  #返回值爲1

 print q.queue #查看當前隊列中的內容函數

 q.queue.clear()  #清空當前隊列spa

import Queue
q = Queue.Queue(2)
print q.empty()
for i in range(1,4):
    try:
        q.put_nowait(i)    #使用put_nowait()將數據放入Queue,若是隊列滿則拋出Full error。若是直接使用q.put()則當Queue滿時,會產生死鎖。取數據則使用print q.get_nowait(),同put_nowait()
    except:
        print ‘q is full’
print q.qsize()
while not q.empty():
    print q.get_nowait()  #取值:先進先出
import Queue
q = Queue.Queue(20)
for i in range(1,8):
    try:
        q.put_nowait(i)    
    except:
        print 'q is full'
q.queue.reverse()   #倒序取值:先進後出
while not q.empty():
    print q.get_nowait()

 

Queue的經常使用方法:
   Queue.qsize() #返回隊列的大小 
   Queue.empty() #若是隊列爲空,返回True,反之False 
   Queue.full()  #若是隊列滿了,返回True,反之False
   Queue.full 與 maxsize 大小對應 
   Queue.get([block[, timeout]]) #獲取隊列,timeout等待時間,調用隊列對象的get()方法從隊頭刪除並返回一個項目。可選參數爲block,默認爲True。若是隊列爲空且block爲True,get()就使調用線程暫停,直至有項目可用。若是隊列爲空且block爲False,隊列將引起Empty異常。 
   Queue.get_nowait() #至關Queue.get(False)
   Queue.put(item)    #非阻塞寫入隊列,timeout等待時間,調用隊列對象的put()方法在隊尾插入一個項目。
   put()有兩個參數,第一個item爲必需的,爲插入項目的值;第二個block爲可選參數,默認爲1。若是隊列當前爲空且block爲1,put()方法就使調用線程暫停,直到空出一個數據單元。若是block爲0,put方法將引起Full異常。
   Queue.put_nowait(item) #至關Queue.put(item, False)
   Queue.task_done()   #在完成一項工做以後,Queue.task_done() 函數向任務已經完成的隊列發送一個信號Queue.join() 實際上意味着等到隊列爲空,再執行別的操做.
相關文章
相關標籤/搜索