码迷,mamicode.com
首页 > 其他好文 > 详细

生产者与消费者模型

时间:2019-06-28 11:43:01      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:生产者   老百姓   env   pytho   ==   print   pre   https   模型   

#!/usr/bin/env python
# coding=utf-8

import threading
import time
import Queue


def producer(name, q):
    while True:
        item = u'产品 {}'.format(q.count)
        q.put(item)
        print u'{} 生产了{}\n'.format(name, item)
        q.count += 1
        time.sleep(1)
        if q.count > 10:
            break

def consumer(name, q):
    while True:
        item = q.get()
        print u'{} 消费了{}\n'.format(name, item)
        time.sleep(2)
        if q.count > 10:
            break

def run_producer_consumer():
    q = Queue.Queue(maxsize=20)
    q.count = 1
    p1 = threading.Thread(target=producer, args=(u'工厂1', q))
    p2 = threading.Thread(target=producer, args=(u'工厂2', q))
    c1 = threading.Thread(target=consumer, args=(u'老百姓1', q))
    c2 = threading.Thread(target=consumer, args=(u'老百姓2', q))
    c3 = threading.Thread(target=consumer, args=(u'老百姓3', q))
    p1.start()
    p2.start()
    c1.start()
    c2.start()
    c3.start()
    p1.join()
    p2.join()
    c1.join()
    c2.join()
    c2.join()


if __name__ == '__main__':
    run_producer_consumer()

'''
输出为(每次运行结果都不一样):

工厂2 生产了产品 1

老百姓2 消费了产品 1

工厂1 生产了产品 2

老百姓3 消费了产品 2

工厂2 生产了产品 3

老百姓1 消费了产品 3

工厂1 生产了产品 4

老百姓2 消费了产品 4

工厂2 生产了产品 5

老百姓3 消费了产品 5

工厂1 生产了产品 6

老百姓1 消费了产品 6

工厂2 生产了产品 7

工厂1 生产了产品 8

老百姓2 消费了产品 7

工厂2 生产了产品 9

老百姓3 消费了产品 8

工厂1 生产了产品 10
'''

源码可于github下载:https://github.com/gkimeeq/PythonLearning

生产者与消费者模型

标签:生产者   老百姓   env   pytho   ==   print   pre   https   模型   

原文地址:https://www.cnblogs.com/Ooman/p/11101694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!