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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python queue模块_Python的queue模块详解

發(fā)布時(shí)間:2025/3/20 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python queue模块_Python的queue模块详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Queue

Queue是python標(biāo)準(zhǔn)庫中的線程安全的隊(duì)列(FIFO)實(shí)現(xiàn),提供了一個(gè)適用于多線程編程的先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),即隊(duì)列,用來在生產(chǎn)者和消費(fèi)者線程之間的信息傳遞

基本FIFO隊(duì)列

class Queue.Queue(maxsize=0)

FIFO即First in First Out,先進(jìn)先出。Queue提供了一個(gè)基本的FIFO容器,使用方法很簡單,maxsize是個(gè)整數(shù),指明了隊(duì)列中能存放的數(shù)據(jù)個(gè)數(shù)的上限。一旦達(dá)到上限,插入會(huì)導(dǎo)致阻塞,直到隊(duì)列中的數(shù)據(jù)被消費(fèi)掉。如果maxsize小于或者等于0,隊(duì)列大小沒有限制。

舉個(gè)栗子:

1 import Queue2 3 q = Queue.Queue()4 5 for i in range(5):6 q.put(i)7 8 while not q.empty():9 print q.get()

輸出:

01

2

3

4

LIFO隊(duì)列

class Queue.LifoQueue(maxsize=0)

LIFO即Last in First Out,后進(jìn)先出。與棧的類似,使用也很簡單,maxsize用法同上

再舉個(gè)栗子:

1 import Queue2 3 q = Queue.LifoQueue()4 5 for i in range(5):6 q.put(i)7 8 while not q.empty():9 print q.get()

輸出:

4

3

2

10

可以看到僅僅是將Queue.Quenu類替換為Queue.LifiQueue類

優(yōu)先級隊(duì)列

class Queue.PriorityQueue(maxsize=0)

構(gòu)造一個(gè)優(yōu)先隊(duì)列。maxsize用法同上。

import Queueimport threadingclass Job(object):def __init__(self, priority, description):

self.priority = priority

self.description = descriptionprint 'Job:',descriptionreturndef __cmp__(self, other):return cmp(self.priority, other.priority)

q = Queue.PriorityQueue()

q.put(Job(3, 'level 3 job'))

q.put(Job(10, 'level 10 job'))

q.put(Job(1, 'level 1 job'))def process_job(q):while True:

next_job = q.get()print 'for:', next_job.description

q.task_done()

workers = [threading.Thread(target=process_job, args=(q,)),

threading.Thread(target=process_job, args=(q,))

]for w in workers:

w.setDaemon(True)

w.start()

q.join()

結(jié)果

Job: level 3 job

Job: level 10 job

Job: level 1 jobfor: level 1 jobfor: level 3 jobfor: job: level 10 job

一些常用方法

task_done()

意味著之前入隊(duì)的一個(gè)任務(wù)已經(jīng)完成。由隊(duì)列的消費(fèi)者線程調(diào)用。每一個(gè)get()調(diào)用得到一個(gè)任務(wù),接下來的task_done()調(diào)用告訴隊(duì)列該任務(wù)已經(jīng)處理完畢。

如果當(dāng)前一個(gè)join()正在阻塞,它將在隊(duì)列中的所有任務(wù)都處理完時(shí)恢復(fù)執(zhí)行(即每一個(gè)由put()調(diào)用入隊(duì)的任務(wù)都有一個(gè)對應(yīng)的task_done()調(diào)用)。

join()

阻塞調(diào)用線程,直到隊(duì)列中的所有任務(wù)被處理掉。

只要有數(shù)據(jù)被加入隊(duì)列,未完成的任務(wù)數(shù)就會(huì)增加。當(dāng)消費(fèi)者線程調(diào)用task_done()(意味著有消費(fèi)者取得任務(wù)并完成任務(wù)),未完成的任務(wù)數(shù)就會(huì)減少。當(dāng)未完成的任務(wù)數(shù)降到0,join()解除阻塞。

put(item[, block[, timeout]])

將item放入隊(duì)列中。如果可選的參數(shù)block為True且timeout為空對象(默認(rèn)的情況,阻塞調(diào)用,無超時(shí))。

如果timeout是個(gè)正整數(shù),阻塞調(diào)用進(jìn)程最多timeout秒,如果一直無空空間可用,拋出Full異常(帶超時(shí)的阻塞調(diào)用)。

如果block為False,如果有空閑空間可用將數(shù)據(jù)放入隊(duì)列,否則立即拋出Full異常

其非阻塞版本為put_nowait等同于put(item, False)

get([block[, timeout]])

從隊(duì)列中移除并返回一個(gè)數(shù)據(jù)。block跟timeout參數(shù)同put方法

其非阻塞方法為`get_nowait()`相當(dāng)與get(False)

empty()

如果隊(duì)列為空,返回True,反之返回False

總結(jié)

以上是生活随笔為你收集整理的python queue模块_Python的queue模块详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费成人黄色网 | 麻豆changesxxx国产 | 日韩三级av | 亚洲国产精彩中文乱码av | 在线免费福利 | 麻豆黄色片 | 色噜噜狠狠成人中文 | 日韩女优在线 | 2024国产精品 | 91一区在线 | 色综合中文综合网 | 91禁在线看 | 伊人久久久| 在线观看av片 | 秋霞福利| 91香蕉一区二区三区在线观看 | 巨乳中文字幕 | 欧美性一区二区 | 天堂成人国产精品一区 | 成人做爰黄 | 亚洲天天看 | 狠狠干欧美 | 在线免费观看黄色av | 欧美韩日一区二区 | 你懂的网站在线 | 久久久亚洲av波多野结衣 | 精品aaa| 肥臀熟女一区二区三区 | 青娱乐在线免费视频 | 在线天堂www在线国语对白 | 国产福利视频在线 | 天天插天天搞 | 欧美男人操女人 | av综合导航| 337p嫩模大胆色肉噜噜噜 | 91成人短视频 | 性做久久久久久免费观看欧美 | 日韩一及片 | 99热国 | 肉色丝袜脚交一区二区 | 九热精品| 国产欧美日韩三级 | 日本少妇喂奶漫画 | 亚洲精品一区二区三区新线路 | 草久在线观看视频 | 99精品在线免费观看 | 欧美巨大另类极品videosbest | 四虎成人在线视频 | 免费久久久久久 | 欧美日韩高清一区二区 国产亚洲免费看 | 成年人黄色大全 | 久久久无码精品亚洲国产 | 一区二区三区四区在线 | 欧美特级a | 色国产精品 | 国产盗摄精品一区二区酒店 | 九一精品在线 | 干美女av | 日本公妇乱淫免费视频一区三区 | 一区二区三区韩国 | 免看黄大片aa | 国产伦精品一区二区三区视频孕妇 | 欧美一级片黄色 | 欧洲成人一区二区三区 | 久久成人在线观看 | 成人a视频在线观看 | 91成人观看| 国产精品jizz视频 | 久久久久噜噜噜亚洲熟女综合 | 国产成人在线免费观看 | av收藏小四郎最新地址 | 久久久久女教师免费一区 | 日韩欧美亚洲国产 | 自拍亚洲综合 | 亚洲丝袜在线视频 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 日韩av无码久久 | 香蕉视频免费 | 成人精品视频一区 | 亚洲精品国产精品乱码不99 | 欧美黑人疯狂性受xxxxx喷水 | 成人av观看 | 亚洲三级在线免费观看 | 99精品视频一区二区三区 | 8x8ⅹ成人永久免费视频 | www.色哟哟| 999久久久精品视频 亚洲视频精品在线 | 久久不卡av | 欧美一区三区三区高中清蜜桃 | 日韩福利视频导航 | 亚洲最大在线观看 | 超碰碰碰碰| 亚洲影院在线 | 中文字幕+乱码+中文乱码www | 国产精品无码无卡无需播放器 | 二级毛片在线观看 | 精彩视频一区二区三区 | 国产美女永久免费无遮挡 | 亚洲综合图 |