from collections import deque
import threading
import time
# 创建队列
queue = deque()
# 生产者线程
def producer():
for i in range(10):
print('生产者生产数据: ', i)
queue.append(i) # 将数据添加到队列尾部
time.sleep(1) # 模拟生产数据的耗时
# 消费者线程
def consumer():
while True:
data = queue.popleft() # 从队列头部取出数据
print('消费者消费数据: ', data)
time.sleep(2) # 模拟处理数据的耗时
# 创建并启动生产者线程
producer_thread = threading.Thread(target=producer)
producer_thread.start()
# 创建并启动消费者线程
consumer_thread = threading.Thread(target=consumer)
consumer_thread.start()
在这个模型中,我们使用了Python的collections.deque
模块来实现队列。这个模块提供的deque
类是一个双端队列,它允许我们从队列的两端添加和删除元素。生产者使用append
方法将数据添加到队列的尾部,而消费者使用popleft
方法从队列的头部取出数据。