写一个多线程处理生产者和消费者的程序
时间: 2024-05-15 12:15:28 浏览: 11
这是一个Python的多线程处理生产者和消费者的程序示例:
```python
import threading
import time
# 共享资源
queue = []
max_queue_size = 10
# 生产者线程
class ProducerThread(threading.Thread):
def run(self):
global queue
while True:
if len(queue) < max_queue_size:
item = time.time()
queue.append(item)
print("生产者生产了:", item)
time.sleep(1)
# 消费者线程
class ConsumerThread(threading.Thread):
def run(self):
global queue
while True:
if len(queue) > 0:
item = queue.pop(0)
print("消费者消费了:", item)
time.sleep(2)
# 创建生产者和消费者线程
producer_thread = ProducerThread()
consumer_thread = ConsumerThread()
# 启动线程
producer_thread.start()
consumer_thread.start()
# 等待线程结束
producer_thread.join()
consumer_thread.join()
```
这个程序中,有两个线程:生产者线程和消费者线程。生产者线程每秒钟生产一个项目,并将其添加到队列中。消费者线程每两秒钟消费一个项目,并从队列中删除它。如果队列已满或为空,线程就会休眠一段时间。程序的最后一行会阻塞主线程,直到生产者和消费者线程都结束为止。