模塊之queue的功能介紹
隊列的分類:
隊列主要要分為兩種
1.雙向隊列
2.單項隊列
1. 單項隊列
-
創建單項隊列
格式:queue.Queue(obj) 例如:que = queue.Queue('abc') 返回值:queue.Queue #創建單項隊列時的參數可以是任意對象,無論傳入的參數是什么,該隊列始終是空的。
-
empty(判斷隊列是否是空的)
格式:queue.Queue(obj).empty() 例如:que = queue.Queue('abc') print(que.empty()) >>> True 返回值:bool #通過直接創建的單項隊列,永遠都是空的。
-
full(判斷隊列是否滿了)
格式:queue.Queue(obj).full() 例如:que = queue.Queue('abc') print(que.full()) >>> False 返回值:bool #判斷隊列是否滿了,與maxsize相對應。
-
get(獲取隊列中的一個項)
格式:queue.Queue(obj).get(block=True,timeout=None) 例如:que = queue.Queue() que.put('abc') print(que.get()) >>> 'abc' 返回值:obj #取出隊列中的一個項,由於單項隊列只能先進先出,當隊列中的項不止一個時,則直接獲取第一個被放入隊列中的項。
-
get_nowait(獲取隊列的一個項)
格式:queue.Queue(obj).get_nowait() #方法同上
-
join
-
put(上傳一個項)
格式:queue.Queue(obj).put(item,block=True,timeout=None) 例如:que = queue.Queue() print(que.put('abc')) >>> None 返回值:None #向隊列里面放一個項,一次只能放一個項。
-
put_nowait(上傳一個項)
格式:queue.Queue(obj).put_nowait() #方法同上
-
qsize(隊列長度)
格式:queue.Queue(obj).qsize() 例如:que = queue.Queue() print(que.qsize()) >>> 0 返回值:int #返回隊列的長度
- task_done
2. 雙向隊列
創建方法:
格式:queue.deque(iterable[,maxlen])
返回值:collections.deque
注:queue模塊中的queue.deque與collections模塊中的collections.deque的功能是一樣的,因此這里不作詳細介紹。