1. 前言
生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。
2. 代码实现
# -*- coding: utf-8 -*- import time from queue import Queue from random import random from threading import Thread # 全局队列 storage_queue = Queue(10) class Producer(Thread): """生产者线程""" def __init__(self, name): Thread.__init__(self) self.name = name # 产品的序列号 self.serial_num = 0 def run(self): while True: # 当仓库没满,生产者就生产产品 if not storage_queue.full(): msg = self.name + '编号:' + str(self.serial_num) storage_queue.put(msg) print("&