最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python隊列Queue的詳解

 更新時間:2019年05月10日 14:15:27   作者:gxyz  
這篇文章主要介紹了python隊列Queue,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Queue

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

基本FIFO隊列

class Queue.Queue(maxsize=0)

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

舉個栗子:

import Queue

q = Queue.Queue()

for i in range(5):
  q.put(i)

while not q.empty():
  print q.get()

輸出:

0
1
2
3
4

 LIFO隊列

class Queue.LifoQueue(maxsize=0)

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

再舉個栗子:

import Queue

q = Queue.LifoQueue()

for i in range(5):
  q.put(i)

while not q.empty():
  print q.get()

輸出:

4
3
2
1
0

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

優(yōu)先級隊列

class Queue.PriorityQueue(maxsize=0)

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

import Queue
import threading

class Job(object):
  def __init__(self, priority, description):
    self.priority = priority
    self.description = description
    print 'Job:',description
    return
  def __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 job
for: level 1 job
for: level 3 job
for: job: level 10 job

 一些常用方法

task_done()

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

如果當前一個join()正在阻塞,它將在隊列中的所有任務都處理完時恢復執(zhí)行(即每一個由put()調(diào)用入隊的任務都有一個對應的task_done()調(diào)用)。

join()

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

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

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

將item放入隊列中。

  1. 如果可選的參數(shù)block為True且timeout為空對象(默認的情況,阻塞調(diào)用,無超時)。
  2. 如果timeout是個正整數(shù),阻塞調(diào)用進程最多timeout秒,如果一直無空空間可用,拋出Full異常(帶超時的阻塞調(diào)用)。
  3. 如果block為False,如果有空閑空間可用將數(shù)據(jù)放入隊列,否則立即拋出Full異常
  4. 其非阻塞版本為put_nowait等同于put(item, False)

get([block[, timeout]])

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

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

empty()

如果隊列為空,返回True,反之返回False

以上所述是小編給大家介紹的python隊列Queue詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 利用Python實現(xiàn)簡單的驗證碼處理

    利用Python實現(xiàn)簡單的驗證碼處理

    這篇文章主要介紹了利用Python實現(xiàn)簡單的驗證碼處理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 深入探討Python中的RegEx模式匹配

    深入探討Python中的RegEx模式匹配

    正則表達式通??s寫為?regex,是處理文本的有效工具,這篇文章主要來和大家深入探討一下Python中的RegEx模式匹配,感興趣的可以了解一下
    2023-07-07
  • 講解Python中的標識運算符

    講解Python中的標識運算符

    這篇文章主要介紹了講解Python中的標識運算符,是Python學習當中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python批量下載圖片的三種方法

    python批量下載圖片的三種方法

    用python批量下載一個網(wǎng)頁中的圖片,需要用到擴展庫來解析html代碼
    2013-04-04
  • 通過python 執(zhí)行 nohup 不生效的解決

    通過python 執(zhí)行 nohup 不生效的解決

    這篇文章主要介紹了通過python 執(zhí)行 nohup 不生效的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 解決pytorch 保存模型遇到的問題

    解決pytorch 保存模型遇到的問題

    這篇文章主要介紹了解決pytorch 保存模型遇到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python實現(xiàn)將Excel內(nèi)容批量導出為PDF文件

    Python實現(xiàn)將Excel內(nèi)容批量導出為PDF文件

    這篇文章主要為大家介紹了如何利用Python實現(xiàn)將Excel表格內(nèi)容批量導出為PDF文件,文中的實現(xiàn)步驟講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • 對python PLT中的image和skimage處理圖片方法詳解

    對python PLT中的image和skimage處理圖片方法詳解

    今天小編就為大家分享一篇對python PLT中的image和skimage處理圖片方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 利用Python如何畫一顆心、小人發(fā)射愛心

    利用Python如何畫一顆心、小人發(fā)射愛心

    這篇文章主要給大家介紹了關(guān)于利用Python如何畫一顆心、小人發(fā)射愛心的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Python3中數(shù)據(jù)校驗機制詳解

    Python3中數(shù)據(jù)校驗機制詳解

    在日常編碼環(huán)節(jié),很大比例的錯誤處理工作和參數(shù)的輸入有關(guān),所以這篇文章主要來和大家介紹一下Python3中的數(shù)據(jù)校驗機制,感興趣的可以了解下
    2024-04-04

最新評論

定襄县| 芒康县| 泰和县| 策勒县| 龙口市| 遂宁市| 萨嘎县| 萨嘎县| 元阳县| 榆林市| 阿合奇县| 根河市| 驻马店市| 甘孜县| 枝江市| 镇远县| 凤凰县| 青浦区| 遂宁市| 无锡市| 志丹县| 博兴县| 青龙| 米易县| 绍兴县| 砚山县| 光泽县| 白银市| 大丰市| 平江县| 九龙城区| 皋兰县| 新河县| 竹溪县| 乐陵市| 内丘县| 车险| 罗山县| 五峰| 伊春市| 大安市|