目录
方法1:基于List的 L(R) PUSH+L(R)POP 的实现
方法4: 基于Sorted-Set的实现,有序集合,类似于list
什么是消息队列??本质就是一个有序列表,有人放,有人拿
思考角度1:用Python原生数据类型
方法1:Queue类型【先进先出】
1 定义一个队列并初始化长度
2 写一个生产者类,消费者类,都继承线程类Thread,并在类的run()函数里面进行入队列(put),出队列(get)的操作
3 在主函数里面,实例化继承线程类的生产者类 和 消费者类,并start()
# -*- coding:utf-8
import random
from threading import Thread
from queue import Queue
"""基于多线程实现"""
queue = Queue(10) # 1定义一个队列并初始化长度
class Producer(Thread): # 2写一个生产者,消费者,都继承线程类Thread
def run(self):
elem = random.randrange(9) # 3 生产 消息
queue.put(elem) # 4 消息加入队列
print("生产消息", elem,"已经产了",queue.qsize())
class Consumer(Thread):
def run(self):
elem = queue.get() # 5 从队列拉取消息
print("消费", elem,"还有",queue.qsize())
def main():
for i in range(3):
p = Producer()
p.start()
for i in range(3):
c = Consumer()
c.start()
if __name__ == "__main__":
main()