国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

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

2020-01-04 16:31:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

Python Queue模塊有三種隊(duì)列及構(gòu)造函數(shù):

1、Python Queue模塊的FIFO隊(duì)列先進(jìn)先出。 class Queue.Queue(maxsize)

2、LIFO類似于堆,即先進(jìn)后出。 class Queue.LifoQueue(maxsize)

3、還有一種是優(yōu)先級(jí)隊(duì)列級(jí)別越低越先出來(lái)。 class Queue.PriorityQueue(maxsize)

此包中的常用方法(q = Queue.Queue()):

q.qsize() 返回隊(duì)列的大小

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

q.full() 如果隊(duì)列滿了,返回True,反之False

q.full 與 maxsize 大小對(duì)應(yīng)

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

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

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

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

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

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

# coding=utf-8import Queueimport threadingimport timeq = Queue.Queue(maxsize=10) # 創(chuàng)建一個(gè)隊(duì)列對(duì)象,長(zhǎng)度限制為10,maxsize小于1就代表無(wú)限制def producer(name):  count = 1  while True:    q.put(count) # 將值放入隊(duì)列中 默認(rèn)block為True,無(wú)數(shù)據(jù)時(shí)調(diào)用線程暫停,否則拋出異常    print "%s 生產(chǎn)了包子 %d" % (name, count)    count += 1    time.sleep(0.5)def consumer(name):  while True:    conut_con = q.get() # 從隊(duì)列中取值 默認(rèn)block為True,無(wú)數(shù)據(jù)時(shí)調(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 實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型(實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 育儿| 新安县| 镶黄旗| 普兰店市| 台南市| 青海省| 吐鲁番市| 东阿县| 天台县| 宣汉县| 新巴尔虎右旗| 古丈县| 潮安县| 昭平县| 通江县| 邯郸县| 天镇县| 张家界市| 临泉县| 安仁县| 白山市| 栾川县| 福清市| 南开区| 靖远县| 兴业县| 鄯善县| 高青县| 石首市| 揭西县| 莒南县| 如皋市| 临泉县| 崇礼县| 吉林省| 潼南县| 万全县| 苏尼特右旗| 丹寨县| 洪雅县| 和龙市|