亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python Queue模塊詳解

2020-02-23 06:17:17
字體:
來源:轉載
供稿:網友

Python中,隊列是線程間最常用的交換數據的形式。Queue模塊是提供隊列操作的模塊,雖然簡單易用,但是不小心的話,還是會出現一些意外。

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

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

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

Python Queue模塊有三種隊列及構造函數:
1、Python Queue模塊的FIFO隊列先進先出。 class Queue.Queue(maxsize)
2、LIFO類似于堆,即先進后出。 class Queue.LifoQueue(maxsize)
3、還有一種是優先級隊列級別越低越先出來。 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() 函數向任務已經完成的隊列發送一個信號
q.join() 實際上意味著等到隊列為空,再執行別的操作

范例:
實現一個線程不斷生成一個隨機數到一個隊列中(考慮使用Queue這個模塊)
實現一個線程從上面的隊列里面不斷的取出奇數
實現另外一個線程從上面的隊列里面不斷取出偶數

#!/usr/bin/env python#coding:utf8import random,threading,timefrom Queue import Queue#Producer threadclass Producer(threading.Thread):  def __init__(self, t_name, queue):    threading.Thread.__init__(self,name=t_name)    self.data=queue  def run(self):    for i in range(10):  #隨機產生10個數字 ,可以修改為任意大小      randomnum=random.randint(1,99)      print "%s: %s is producing %d to the queue!" % (time.ctime(), self.getName(), randomnum)      self.data.put(randomnum) #將數據依次存入隊列      time.sleep(1)    print "%s: %s finished!" %(time.ctime(), self.getName()) #Consumer threadclass Consumer_even(threading.Thread):  def __init__(self,t_name,queue):    threading.Thread.__init__(self,name=t_name)    self.data=queue  def run(self):    while 1:      try:        val_even = self.data.get(1,5) #get(self, block=True, timeout=None) ,1就是阻塞等待,5是超時5秒        if val_even%2==0:          print "%s: %s is consuming. %d in the queue is consumed!" % (time.ctime(),self.getName(),val_even)          time.sleep(2)        else:          self.data.put(val_even)          time.sleep(2)      except:   #等待輸入,超過5秒 就報異常        print "%s: %s finished!" %(time.ctime(),self.getName())        breakclass Consumer_odd(threading.Thread):  def __init__(self,t_name,queue):    threading.Thread.__init__(self, name=t_name)    self.data=queue  def run(self):    while 1:      try:        val_odd = self.data.get(1,5)        if val_odd%2!=0:          print "%s: %s is consuming. %d in the queue is consumed!" % (time.ctime(), self.getName(), val_odd)          time.sleep(2)        else:          self.data.put(val_odd)          time.sleep(2)      except:        print "%s: %s finished!" % (time.ctime(), self.getName())        break#Main threaddef main():  queue = Queue()  producer = Producer('Pro.', queue)  consumer_even = Consumer_even('Con_even.', queue)  consumer_odd = Consumer_odd('Con_odd.',queue)  producer.start()  consumer_even.start()  consumer_odd.start()  producer.join()  consumer_even.join()  consumer_odd.join()  print 'All threads terminate!' if __name__ == '__main__':  main()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线精品视频视频中文字幕| 国产日韩欧美在线观看| 欧美福利小视频| 蜜月aⅴ免费一区二区三区| 日韩va亚洲va欧洲va国产| 欧美激情一区二区三区成人| 久久久久久久av| 亚洲自拍另类欧美丝袜| 在线色欧美三级视频| 日韩成人在线视频网站| 成人综合国产精品| 亚洲第一av网| 久久久久久久爱| 亚洲精品中文字幕有码专区| 国产激情久久久| 欧美做受高潮1| 国内精品久久影院| 成人久久久久久久| 亚洲自拍偷拍在线| 精品久久久久久久久国产字幕| www.精品av.com| 黄色成人在线免费| 热久久视久久精品18亚洲精品| 国产精品福利在线观看| 国产v综合ⅴ日韩v欧美大片| 精品毛片三在线观看| 亚洲成人网在线观看| 国产精品久久久久福利| 国产精品第1页| 午夜精品久久久99热福利| 国内揄拍国内精品少妇国语| 亚洲欧美综合精品久久成人| 精品福利在线看| 揄拍成人国产精品视频| 91精品久久久久久久久久| 国产精品中文字幕在线| 亚洲综合av影视| 欧美激情国产日韩精品一区18| 欧美电影免费观看| 日韩网站免费观看| 91地址最新发布| 国产精品久久一区| 中文字幕日韩免费视频| 国产va免费精品高清在线| 成人激情在线观看| 6080yy精品一区二区三区| 国产精品视频大全| 8x海外华人永久免费日韩内陆视频| 国产精品专区h在线观看| 成人免费高清完整版在线观看| 日韩欧美一区视频| 欧美日韩高清在线观看| 精品日韩美女的视频高清| 大伊人狠狠躁夜夜躁av一区| 国语自产精品视频在线看抢先版图片| 欧美一级片一区| 亚洲欧美国产日韩天堂区| 欧美极品少妇xxxxⅹ裸体艺术| 欧美精品成人91久久久久久久| 最近2019中文字幕在线高清| 亚洲福利视频免费观看| 国产亚洲人成网站在线观看| 久久久噜噜噜久久| 国产精品视频不卡| 久久成人18免费网站| 中文字幕亚洲自拍| 97av在线影院| 亚洲福利在线视频| 国产精品久久77777| 久久久久久成人精品| 草民午夜欧美限制a级福利片| 欧美三级欧美成人高清www| 亚洲影院色无极综合| 国产精品欧美风情| 亚洲国产精品福利| 97精品国产97久久久久久| 国产一区二区美女视频| 国语对白做受69| 国产精品igao视频| 青青草原成人在线视频| 久久综合色88| 国产日韩精品视频| 国产91成人video| 色哟哟入口国产精品| 国产亚洲美女精品久久久| 九九九热精品免费视频观看网站| 日韩精品亚洲视频| 亚洲人成人99网站| 一本色道久久88综合亚洲精品ⅰ| 日韩在线观看av| 亚洲欧美一区二区激情| 红桃视频成人在线观看| 亚洲三级免费看| 米奇精品一区二区三区在线观看| 久久久久久网址| 色偷偷噜噜噜亚洲男人的天堂| 久久久免费av| 国产成人av在线播放| 91精品国产高清自在线看超| 狠狠躁夜夜躁人人爽超碰91| 在线日韩中文字幕| 久久影院免费观看| 国产精品成人观看视频国产奇米| 富二代精品短视频| 亚洲精品欧美极品| 97久久久免费福利网址| 国产精品久久久久91| 懂色aⅴ精品一区二区三区蜜月| 亚洲欧洲自拍偷拍| 亚洲成av人片在线观看香蕉| 成人欧美在线视频| 欧美一级免费视频| 欧美大学生性色视频| 欧洲成人免费视频| 欧美一级电影久久| 欧美午夜美女看片| 欧美精品久久久久久久久久| 欧美一级高清免费播放| 97av在线视频免费播放| 亚洲天堂色网站| 狠狠色狠狠色综合日日五| 欧美日韩免费在线观看| 国产91露脸中文字幕在线| 国模精品视频一区二区| 色综合视频网站| 日韩精品中文字幕视频在线| 国产999精品视频| 国产精品免费久久久久影院| 91av视频在线免费观看| 福利一区福利二区微拍刺激| 少妇激情综合网| 色综合伊人色综合网站| 国产成人综合一区二区三区| 亚洲天堂网在线观看| 好吊成人免视频| 日韩中文视频免费在线观看| 国产精品免费一区二区三区都可以| 国产一区二中文字幕在线看| 久久精视频免费在线久久完整在线看| 最近2019年日本中文免费字幕| 姬川优奈aav一区二区| 久久久av一区| 91国产精品91| 日韩亚洲精品电影| 91国自产精品中文字幕亚洲| www.欧美精品一二三区| 色偷偷亚洲男人天堂| 精品动漫一区二区| 欧美激情久久久久| 热久久免费国产视频| 欧美国产日本高清在线| 亚洲欧美综合图区| 欧美性感美女h网站在线观看免费| 日本sm极度另类视频| 午夜免费久久久久| 日韩在线观看网站| 成人免费淫片视频软件| 亚洲成人黄色在线| 亚洲第一页中文字幕| 欧美日韩中文字幕在线| 精品国产一区二区在线| 亚洲国产成人在线视频| 国产在线精品一区免费香蕉| 中文综合在线观看|