Queue在python的實例化
1、Queue的方法
實例化Queue(),未指定可接收信息的參數(shù)或該參數(shù)為負數(shù),則默認無上限(內存上限)
Queue.qsize():返回當前隊列包含消息的數(shù)量
Queue.empty():判斷隊列是否為空,是為True,否為False
Queue.full():判斷隊列是否滿了,是為True,否為False
Queue.get([block[,timeout]]):獲取一條隊列的消息,然后將其從隊列中刪除,black默認為True
如果block為默認值,沒有設置timeout,消息隊列又為空,那么此時程序將會阻塞(停在讀取狀態(tài)),直到隊列中有值,從消息隊列中讀取到值.如果設置了timeout,等待timeout的時間就會報出(Queue.Empty)異常
如果block為False,消息隊列為空,則會立刻拋出(Queue.Empty)異常
2、實例化
frommultiprocessingimportQueue
q=Queue(3)#在實例化時傳入消息隊列的數(shù)量
q.put("test1")
q.put("test2")
print(q.full())#這里隊列未滿,返回False
q.put("test3")
print(q.full())#這里隊列已經(jīng)滿了,返回True
try:
q.put("test4",timeout=2)#在寫入時,如果隊列是滿的,就等待兩秒鐘,如還不可以,拋出異常
except:
print("當前消息隊列的數(shù)量為%s"%q.qsize())
try:
q.put("test4",block=False)#在寫入時,如果隊列是滿的,直接拋出異常
except:
print("當前消息隊列的數(shù)量為%s"%q.qsize())
#在寫入之前,可以判斷下隊列是否是滿的
ifnotq.full():
q.put_nowait("test4")
#同理,在取數(shù)之前,判斷隊列是否為空
ifnotq.empty():
foriinrange(q.qsize()):
print(q.get_nowait())
以上就是Queue在python實例化的方法,希望能對大家有所幫助,更多Python學習教程請關注IT培訓機構:千鋒教育。