Python3 queue隊(duì)列模塊詳細(xì)介紹
queue介紹
queue是python中的標(biāo)準(zhǔn)庫(kù),俗稱(chēng)隊(duì)列。
在python中,多個(gè)線程之間的數(shù)據(jù)是共享的,多個(gè)線程進(jìn)行數(shù)據(jù)交換的時(shí)候,不能夠保證數(shù)據(jù)的安全性和一致性,所以當(dāng)多個(gè)線程需要進(jìn)行數(shù)據(jù)交換的時(shí)候,隊(duì)列就出現(xiàn)了,隊(duì)列可以完美解決線程間的數(shù)據(jù)交換,保證線程間數(shù)據(jù)的安全性和一致性。
注意: 在python2.x中,模塊名為Queue
queue模塊有三種隊(duì)列及構(gòu)造函數(shù)
Python queue模塊的FIFO隊(duì)列先進(jìn)先出。 queue.Queue(maxsize)
LIFO類(lèi)似于堆,即先進(jìn)后出。 queue.LifoQueue(maxsize)
還有一種是優(yōu)先級(jí)隊(duì)列級(jí)別越低越先出來(lái)。 queue.PriorityQueue(maxsize)
queue模塊中的常用方法
queue.qsize() 返回隊(duì)列的大小
queue.empty() 如果隊(duì)列為空,返回True,反之False
queue.full() 如果隊(duì)列滿(mǎn)了,返回True,反之False
queue.full 與 maxsize 大小對(duì)應(yīng)
queue.get([block[, timeout]])獲取隊(duì)列,立即取出一個(gè)元素, timeout超時(shí)時(shí)間
queue.put(item[, timeout]]) 寫(xiě)入隊(duì)列,立即放入一個(gè)元素, timeout超時(shí)時(shí)間
queue.get_nowait() 相當(dāng)于queue.get(False)
queue.put_nowait(item) 相當(dāng)于queue.put(item, False)
queue.join() 阻塞調(diào)用線程,直到隊(duì)列中的所有任務(wù)被處理掉, 實(shí)際上意味著等到隊(duì)列為空,再執(zhí)行別的操作
queue.task_done() 在完成一項(xiàng)工作之后,queue.task_done()函數(shù)向任務(wù)已經(jīng)完成的隊(duì)列發(fā)送一個(gè)信號(hào)
代碼實(shí)例
以下代碼在Python3下通過(guò)
創(chuàng)建隊(duì)列
import queue q = queue.Queue()
empty方法(如果隊(duì)列為空,返回True)
import queue q = queue.Queue() print(q.empty()) #輸出:True
full方法(如果隊(duì)列滿(mǎn)了,返回True)
import queue
q = queue.Queue(1) #指定隊(duì)列大小
q.put('a')
print(q.full())
#輸出:True
put方法和get方法
import queue
q = queue.Queue()
q.put('a')
q.put('b')
print(q.get())
#輸出:a
qsize方法(返回隊(duì)列里元素個(gè)數(shù))
import queue
q = queue.Queue()
q.put('a')
q.put('b')
print(q.qsize())
#輸出:2
總結(jié)
以上所述是小編給大家介紹的Python3 queue隊(duì)列模塊詳細(xì)介紹,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
深入探究PyTorch核心特性之自動(dòng)求導(dǎo)和優(yōu)化
在你已經(jīng)掌握了如何使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,接下來(lái)我們將深入探討PyTorch的兩個(gè)核心特性:自動(dòng)求導(dǎo)(Autograd)和優(yōu)化(Optimization),這兩個(gè)特性在深度學(xué)習(xí)模型的訓(xùn)練過(guò)程中起著至關(guān)重要的作用,感興趣的同學(xué)一起來(lái)看看吧2023-07-07
Python基礎(chǔ)學(xué)習(xí)之反射機(jī)制詳解
在Python中,反射是指通過(guò)一組內(nèi)置的函數(shù)和語(yǔ)句,在運(yùn)行時(shí)動(dòng)態(tài)地訪問(wèn)、檢查和修改對(duì)象的屬性、方法和類(lèi)信息的機(jī)制。本文將通過(guò)簡(jiǎn)單的示例和大家講講Python中的反射機(jī)制,希望對(duì)大家有所幫助2023-03-03
基于TensorBoard中g(shù)raph模塊圖結(jié)構(gòu)分析
今天小編就為大家分享一篇基于TensorBoard中g(shù)raph模塊圖結(jié)構(gòu)分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python實(shí)現(xiàn)PS濾鏡碎片特效功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡碎片特效功能,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)PS濾鏡碎片效果的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
python3?cookbook解壓可迭代對(duì)象賦值給多個(gè)變量的問(wèn)題及解決方案
這篇文章主要介紹了python3?cookbook-解壓可迭代對(duì)象賦值給多個(gè)變量,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01
python opencv鼠標(biāo)事件實(shí)現(xiàn)畫(huà)框圈定目標(biāo)獲取坐標(biāo)信息
這篇文章主要為大家詳細(xì)介紹了python opencv鼠標(biāo)事件實(shí)現(xiàn)畫(huà)框圈定目標(biāo),獲取坐標(biāo)信息,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Python 獲取windows桌面路徑的5種方法小結(jié)
今天小編就為大家分享一篇Python 獲取windows桌面路徑的5種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07

