python 使用队列创建一个多线程生产者消费者类
时间: 2023-12-16 20:05:00 浏览: 90
以下是使用Python队列创建多线程生产者消费者类的示例代码:
```python
import threading
import queue
import time
class ProducerConsumer:
def __init__(self):
self.task_queue = queue.Queue()
self.producer_thread = threading.Thread(target=self.producer)
self.consumer_thread = threading.Thread(target=self.consumer)
def start(self):
self.producer_thread.start()
self.consumer_thread.start()
def producer(self):
while True:
item = self.produce_item()
self.task_queue.put(item)
print(f"Produced item: {item}")
time.sleep(1)
def consumer(self):
while True:
item = self.task_queue.get()
self.consume_item(item)
print(f"Consumed item: {item}")
self.task_queue.task_done()
def produce_item(self):
return time.time()
def consume_item(self, item):
print(f"Processing item: {item}")
time.sleep(2)
pc = ProducerConsumer()
pc.start()
```
该代码使用Python内置的queue模块创建一个队列,然后使用两个线程分别作为生产者和消费者。生产者线程循环生产新的项目并将其放入队列中,消费者线程从队列中获取项目并处理它们。
生产者和消费者方法都使用了sleep函数来模拟一些计算或I/O的延迟。此外,程序还使用了time模块来获取当前时间戳作为新的项目。
最后,程序创建了一个ProducerConsumer实例并调用start方法启动线程。当程序运行时,它将不断地打印生产和消费的项目。
阅读全文