您的位置:首页 > 编程语言 > Python开发

Python 生产者消费者--队列实现

2017-04-27 15:15 260 查看
# -*- coding:utf-8 -*-
# producer_consumer_queue

from Queue import Queue

import random

import threading

import time

#Producer thread

class 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(5):

print "%s: %s is producing %d to the queue!/n" %(time.ctime(), self.getName(), i)

self.data.put(i)

time.sleep(random.randrange(10)/5)

print "%s: %s finished!" %(time.ctime(), self.getName())

#Consumer thread

class Consumer(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(5):

val = self.data.get()

print "%s: %s is consuming. %d in the queue is consumed!/n" %(time.ctime(), self.getName(), val)

time.sleep(random.randrange(10))

print "%s: %s finished!" %(time.ctime(), self.getName())

#Main thread

def main():

queue = Queue()

producer = Producer('Pro.', queue)

consumer = Consumer('Con.', queue)

producer.start()

consumer.start()

producer.join()

consumer.join()

print 'All threads terminate!'

if __name__ == '__main__':

main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python