python concurrent queue_Python的并发并行[2] - 队列[0] - queue 模块
queue模塊/ queue Module
1常量/ Constants
Pass
2函數/ Function
Pass
3類/ Class
3.1 Queue類
類實例化:queue= queue.Queue(maxsize=0)
類的功能:用于生成一個先入先出隊列實例
傳入參數: maxsize
maxsize: int類型,隊列的最大值,無空間時阻塞,未指定時為無限隊列
返回參數: queue
queue: instance類型,生成的先入先出隊列實例
3.1.1 put()方法
函數調用: queue.put(item, block=True, timeout=None)
函數功能:將item放進隊列中
傳入參數: item, block, timeout
item: int/str/obj等類型,放進隊列中的項目
block: bool類型,設置阻塞,True則阻塞,False則會引發異常
timeout: None/int類型,設置阻塞超時時間(s),None則無限時阻塞
返回參數:無
3.1.2 get()方法
函數調用: item = queue.get(block=True, timeout=None)
函數功能:將item從隊列中取出
傳入參數: block, timeout
block: bool類型,設置阻塞,True則阻塞,False則會引發異常
timeout: None/int類型,設置阻塞超時時間(s),None則無限時阻塞
返回參數: item
item: int/str/obj等類型,從隊列中取出的項目
3.1.3 put_nowait()方法
函數調用: queue.put_nowait(item)
函數功能:無等待將item放進隊列中,相當于put(item, False),失敗則引發Full異常
傳入參數: item
item: int/str/obj等類型,放進隊列中的項目
返回參數:無
3.1.4 get_nowait()方法
函數調用: item = queue.get_nowait()
函數功能:無等待將item從隊列中取出,相當于get(False),失敗則引發Empty異常
傳入參數:無
返回參數: item
item: int/str/obj等類型,隊列中取出的項目
3.1.5 task_done()方法
函數調用: queue.task_done()
函數功能:用于表明一個任務已經完成,設置完成標志,常用于隊列的消耗線程,每一個get()函數取出一個item,隨后可以設置一個task_done,當所有隊列的任務都標記完成后,join將釋放阻塞
傳入參數:無
返回參數:無
3.1.6 join ()方法
函數調用: queue.join()
函數功能:用于阻塞當前的線程,等待join之前所有的隊列(包括join之前入列并出列的任務)任務都設置了task_done標志后,才會解除阻塞
傳入參數:無
返回參數:無
3.1.7 qsize()方法
函數調用: size = queue.qsize()
函數功能:返回當前隊列的大小(由于其他線程存在修改,該值并不準確,為近似值)
傳入參數:無
返回參數: size
siez: int類型,隊列中item的數量
3.1.8 empty()方法
函數調用: status = queue.empty()
函數功能:返回當前隊列的狀態,為空返回True,否則返回False,與qsize一樣,返回的是一個近似值,若需要等待所有隊列結束,建議使用join()函數
傳入參數:無
返回參數: status
status: bool類型,True表示當前隊列為空
3.1.9 full()方法
函數調用: status = queue.full()
函數功能:返回當前隊列的狀態,隊列已滿返回True,否則返回False,同樣返回的是一個近似值
傳入參數:無
返回參數: status
status: bool類型,True表示當前隊列為空
3.2 LifoQueue類
類實例化:queue= queue.LifoQueue(maxsize=0)
類的功能:用于生成一個后入先出隊列實例
傳入參數: maxsize
maxsize: int類型,隊列的最大值,無空間時阻塞,未指定時為無限隊列
返回參數: queue
queue: instance類型,生成的后入先出隊列實例
Note:
對于LifoQueue類,其基類是Queue,在源代碼中重定義了Queue的_init, _qsize, _put, _get函數,使其在隊列的處理順序上有所不同(其本質為向隊列列表中取出item時_get()函數使用的是popleft函數還是pop函數),其父類的函數均可以繼承使用。
3.3 PriorityQueue類
類實例化:queue= queue.PriorityQueue(maxsize=0)
類的功能:用于生成一個優先級隊列實例,最小的最優取出
傳入參數: maxsize
maxsize: int 類型,隊列的最大值,無空間時阻塞,未指定時為無限隊列
返回參數: queue
queue: instance類型,生成的優先級隊列實例
Note:
對于PriorityQueue類,其基類也是Queue,同樣在源代碼中重定義了Queue的_init, _qsize, _put, _get函數,使其在隊列的處理順序上有所不同(其本質為向隊列列表中取出item時_get()使用了heappop函數,而放入時使用了heappush函數),父類函數同樣可繼承使用。
3.4 Empty異常類
類實例化:無
類的功能:用于當隊列為空且調用get*()方法時拋出的異常
傳入參數:無
返回參數:無
3.5 Full異常類
類實例化:無
類的功能:用于當隊列已滿且調用put*()方法時拋出的異常
傳入參數:無
返回參數:無
總結
以上是生活随笔為你收集整理的python concurrent queue_Python的并发并行[2] - 队列[0] - queue 模块的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: html的表单标记格式,HTML表单标签
- 下一篇: java启动应用_java 学习:在ja
