1. 程式人生 > >python 歸納 (十四)_隊列Queue實現生產者消費者

python 歸納 (十四)_隊列Queue實現生產者消費者

() 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實現生產者消費者