日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python concurrent queue_Python的并发并行[2] - 队列[0] - queue 模块

發布時間:2025/3/12 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。