python 歸納 (十四)_隊列Queue實現生產者消費者
阿新 • • 發佈:2018-09-09
() producer put consumer 啟動 produce odin gin and
# -*- coding: UTF-8 -*- """ 多線程的生產者,消費者 使用隊列Queue """ import Queue import threading import time import random queue = Queue.Queue(3) # 創建3個大小的隊列 class Producer(threading.Thread): """ 生產者,往隊列中寫數據 """ def __init__(self, queue): super(Producer, self).__init__() # 調用父類構造函數 self.queue = queue def run(self): while True: my_rand_double = random.random() self.queue.put(my_rand_double) # 往隊列寫數據 print "producer randonm %f \n" % (my_rand_double) time.sleep(2) class Consumer(threading.Thread):""" 消費者,從隊列中讀取數據 """ def __init__(self, queue): super(Consumer, self).__init__() self.queue = queue def run(self): while True: my_data = self.queue.get() # 從隊列讀數據 print "consumer:",my_data,"\n" time.sleep(1) if __name__ == ‘__main__‘: print "begin....\n" # 啟動線程 Producer(queue).start() Consumer(queue).start() Consumer(queue).start() print "main end....\n" """ Out: begin.... producer randonm 0.321120 consumer: 0.32111958348 main end.... producer randonm 0.340942 consumer: 0.340942161065 producer randonm 0.672640 consumer: 0.672639677729 producer randonm 0.940307 consumer: 0.940307007999 producer randonm 0.497011 consumer: 0.497011018834 """
python 歸納 (十四)_隊列Queue實現生產者消費者