生产者以及消费者模式(多进程)

code
import time
import random
from multiprocessing import Process, Queue
 
# 生产者
def producer(q, i):
    food = 'Spam-%d' % i
    time.sleep(random.uniform(2, 5))
    timeVal = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    print('时间:%s\t生产者:%d 生产了 %d' % (timeVal, i, i))
    q.put(food)
 
# 消费者
def consumer(q, i):
    while True:
        food = q.get()
        if not food:
            break
        time.sleep(random.uniform(1, 2))
        timeVal = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        print('时间:%s\t消费者: %d\t吃了 %s' % (timeVal, i, food))
 
if __name__ == '__main__':
    q = Queue()
 
    producerPs = []
    for n in range(1, 16):
        producerPs.append(Process(target=producer, args=(q, n)))
 
    for producerP in producerPs:
        producerP.start()
 
    consumerPs = []
    for n in range(1, 3):
        consumerPs.append(Process(target=consumer, args=(q, n)))
 
    for consumerP in consumerPs:
        consumerP.start()
 
    for producerP in producerPs:
        producerP.join()
 
    for consumerP in consumerPs:
        q.put(None)
 
    for consumerP in consumerPs:
        consumerP.join()
 
    print('end')
outputs
macname@MacdeMacBook-Pro py % python3 cccccc.py
时间:2020-03-23 16:12:18    生产者:6 生产了 6
时间:2020-03-23 16:12:18    生产者:1 生产了 1
时间:2020-03-23 16:12:19    生产者:11 生产了 11
时间:2020-03-23 16:12:19    生产者:8 生产了 8
时间:2020-03-23 16:12:19    生产者:9 生产了 9
时间:2020-03-23 16:12:19    生产者:12 生产了 12
时间:2020-03-23 16:12:20    生产者:7 生产了 7
时间:2020-03-23 16:12:20    消费者: 1    吃了 Spam-6
时间:2020-03-23 16:12:20    生产者:10 生产了 10
时间:2020-03-23 16:12:20    生产者:3 生产了 3
时间:2020-03-23 16:12:20    生产者:15 生产了 15
时间:2020-03-23 16:12:20    生产者:13 生产了 13
时间:2020-03-23 16:12:20    生产者:2 生产了 2
时间:2020-03-23 16:12:20    消费者: 2    吃了 Spam-1
时间:2020-03-23 16:12:20    生产者:4 生产了 4
时间:2020-03-23 16:12:21    生产者:5 生产了 5
时间:2020-03-23 16:12:21    生产者:14 生产了 14
时间:2020-03-23 16:12:21    消费者: 1    吃了 Spam-11
时间:2020-03-23 16:12:21    消费者: 2    吃了 Spam-8
时间:2020-03-23 16:12:22    消费者: 1    吃了 Spam-9
时间:2020-03-23 16:12:23    消费者: 2    吃了 Spam-12
时间:2020-03-23 16:12:24    消费者: 1    吃了 Spam-7
时间:2020-03-23 16:12:24    消费者: 2    吃了 Spam-10
时间:2020-03-23 16:12:25    消费者: 1    吃了 Spam-3
时间:2020-03-23 16:12:26    消费者: 2    吃了 Spam-15
时间:2020-03-23 16:12:27    消费者: 1    吃了 Spam-13
时间:2020-03-23 16:12:27    消费者: 2    吃了 Spam-2
时间:2020-03-23 16:12:28    消费者: 1    吃了 Spam-4
时间:2020-03-23 16:12:29    消费者: 2    吃了 Spam-5
时间:2020-03-23 16:12:30    消费者: 1    吃了 Spam-14
end
macname@MacdeMacBook-Pro py %

 

 
 
 
 
 
 
 
 

posted @ 2020-12-26 16:45  anobscureretreat  阅读(211)  评论(0编辑  收藏  举报