Python3 queue隊(duì)列模塊詳細(xì)介紹
queue介紹
queue是python中的標(biāo)準(zhǔn)庫(kù),俗稱隊(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類似于堆,即先進(jìn)后出。 queue.LifoQueue(maxsize)
還有一種是優(yōu)先級(jí)隊(duì)列級(jí)別越低越先出來。 queue.PriorityQueue(maxsize)
queue模塊中的常用方法
queue.qsize() 返回隊(duì)列的大小
queue.empty() 如果隊(duì)列為空,返回True,反之False
queue.full() 如果隊(duì)列滿了,返回True,反之False
queue.full 與 maxsize 大小對(duì)應(yīng)
queue.get([block[, timeout]])獲取隊(duì)列,立即取出一個(gè)元素, timeout超時(shí)時(shí)間
queue.put(item[, timeout]]) 寫入隊(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下通過
創(chuàng)建隊(duì)列
import queue q = queue.Queue()
empty方法(如果隊(duì)列為空,返回True)
import queue q = queue.Queue() print(q.empty()) #輸出:True
full方法(如果隊(duì)列滿了,返回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ì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Django模板獲取field的verbose_name實(shí)例
這篇文章主要介紹了Django模板獲取field的verbose_name實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn)
本文主要介紹了Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn),CUDA流是在GPU上并行執(zhí)行操作的一種機(jī)制,通過使用CUDA流,可以將不同的操作分配給不同的流,在不同的流上并行執(zhí)行這些操作,從而提高代碼的性能2023-12-12Python要求O(n)復(fù)雜度求無序列表中第K的大元素實(shí)例
這篇文章主要介紹了Python要求O(n)復(fù)雜度求無序列表中第K的大元素實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04利用django+wechat-python-sdk 創(chuàng)建微信服務(wù)器接入的方法
今天小編就為大家分享一篇利用django+wechat-python-sdk 創(chuàng)建微信服務(wù)器接入的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟小編過來看看吧2019-02-02Python使用matplotlib填充圖形指定區(qū)域代碼示例
這篇文章主要介紹了Python使用matplotlib填充圖形指定區(qū)域代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01python進(jìn)程間通信的項(xiàng)目實(shí)踐
本文主要介紹了python進(jìn)程間通信的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03python實(shí)現(xiàn)json文件的增刪改操作方法
這篇文章主要介紹了python實(shí)現(xiàn)json文件的增刪改操作,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片
這篇文章主要介紹了Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較進(jìn)行對(duì)比圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04OpenCV4.1.0+VS2017環(huán)境配置的方法步驟
這篇文章主要介紹了OpenCV4.1.0+VS2017環(huán)境配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07