久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python threading之queue

 ly88 2025-01-08 發(fā)布于山西



創(chuàng)建一個“隊列”對象
import Queue
q = Queue.Queue(maxsize = 10)
Queue.Queue類即是一個隊列的同步實現(xiàn)。隊列長度可為無限或者有限,??赏ㄟ^Queue的構(gòu)造函數(shù)的可選參數(shù)maxsize來設定隊列長度,。如果maxsize小于1就表示隊列長度無限。


將一個值放入隊列中
q.put(10)
調(diào)用隊列對象的put()方法在隊尾插入一個項目,。put()有兩個參數(shù),,第一個item為必需的,,為插入項目的值;第二個block為可選參數(shù),,默認為
1。如果隊列當前為空且block為1,,put()方法就使調(diào)用線程暫停,直到空出一個數(shù)據(jù)單元,。如果block為0,,put方法將引發(fā)Full異常。


將一個值從隊列中取出
q.get()
調(diào)用隊列對象的get()方法從隊頭刪除并返回一個項目,??蛇x參數(shù)為block,默認為True,。如果隊列為空且block為True,,get()就使調(diào)用線程暫停,直至有項目可用,。如果隊列為空且block為False,,隊列將引發(fā)Empty異常。


Python Queue模塊有三種隊列及構(gòu)造函數(shù):
1,、Python Queue模塊的FIFO隊列先進先出,。  class queue.Queue(maxsize)
2、LIFO類似于堆,,即先進后出,。             class queue.LifoQueue(maxsize)
3、還有一種是優(yōu)先級隊列級別越低越先出來,。   class queue.PriorityQueue(maxsize)


此包中的常用方法(q = Queue.Queue()):
q.qsize() 返回隊列的大小
q.empty() 如果隊列為空,,返回True,反之False
q.full() 如果隊列滿了,返回True,反之False
q.full 與 maxsize 大小對應
q.get([block[, timeout]]) 獲取隊列,,timeout等待時間
q.get_nowait() 相當q.get(False)
非阻塞 q.put(item) 寫入隊列,,timeout等待時間
q.put_nowait(item) 相當q.put(item, False)
q.task_done() 在完成一項工作之后,q.task_done() 函數(shù)向任務已經(jīng)完成的隊列發(fā)送一個信號
q.join() 實際上意味著等到隊列為空,,再執(zhí)行別的操作

列表可以實現(xiàn)隊列的作用,,為什么還要有隊列?

因為在多線程中列表的元素可以被同時取到是不安全的,,但是隊列不能同時取到,。

實例:

import threading,queue

from time import sleep

from random import randint

class Production(threading.Thread):

    def run(self):

        while True:

            r=randint(0,100)

            q.put(r)

            print("生產(chǎn)出來%s號包子"%r)

            sleep(1)

class Proces(threading.Thread):

    def run(self):

        while True:

            re=q.get()

            print("吃掉%s號包子"%re)

if __name__=="__main__":

    q=queue.Queue(10)

    threads=[Production(),Production(),Production(),Proces()]

    for t in threads:

        t.start()

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多