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

Queue 實現(xiàn)生產(chǎn)者消費者模型(實例講解)

 更新時間:2017年11月13日 08:52:52   作者:有蟲子啊  
下面小編就為大家?guī)硪黄猀ueue 實現(xiàn)生產(chǎn)者消費者模型(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Python中,隊列是線程間最常用的交換數(shù)據(jù)的形式。

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 大小對應(yīng)

q.get([block[, timeout]]) 獲取隊列,timeout等待時間

q.get_nowait() 相當(dāng)q.get(False)

非阻塞 q.put(item) 寫入隊列,timeout等待時間

q.put_nowait(item) 相當(dāng)q.put(item, False)

q.task_done() 在完成一項工作之后,q.task_done() 函數(shù)向任務(wù)已經(jīng)完成的隊列發(fā)送一個信號

q.join() 實際上意味著等到隊列為空,再執(zhí)行別的操作

# coding=utf-8

import Queue
import threading
import time


q = Queue.Queue(maxsize=10) # 創(chuàng)建一個隊列對象,長度限制為10,maxsize小于1就代表無限制


def producer(name):
  count = 1
  while True:
    q.put(count) # 將值放入隊列中 默認(rèn)block為True,無數(shù)據(jù)時調(diào)用線程暫停,否則拋出異常
    print "%s 生產(chǎn)了包子 %d" % (name, count)
    count += 1
    time.sleep(0.5)


def consumer(name):
  while True:
    conut_con = q.get() # 從隊列中取值 默認(rèn)block為True,無數(shù)據(jù)時調(diào)用線程暫停,否則拋出異常
    print "%s 吃掉了包子 %d" % (name, conut_con)
    time.sleep(2)


pro = threading.Thread(target=producer, args=("德源",))
con = threading.Thread(target=consumer, args=("xu",))
con2 = threading.Thread(target=consumer, args=("sx",))

pro.start()
con.start()
con2.start() # 開啟線程

以上這篇Queue 實現(xiàn)生產(chǎn)者消費者模型(實例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

衡水市| 安泽县| 醴陵市| 卓资县| 台湾省| 灯塔市| 德江县| 张家口市| 略阳县| 略阳县| 韶山市| 南宫市| 宽甸| 志丹县| 宜昌市| 庄河市| 怀化市| 汾西县| 湖南省| 河北区| 洛浦县| 西峡县| 彭阳县| 湘阴县| 阿勒泰市| 蒙自县| 巨鹿县| 梅州市| 格尔木市| 钦州市| 会宁县| 溧水县| 梁山县| 平乐县| 措勤县| 邳州市| 沙雅县| 江口县| 烟台市| 安多县| 兴安县|