当前位置: 首页 > news >正文

python队列与多线程——生产者消费者模型

队列相关知识点

多线程相关知识点

import random
import time
from queue import Queue
import threadingclass Consumer(threading.Thread):def __init__(self, name, Q: Queue):super(Consumer, self).__init__()self.name = nameself.Q = Qdef run(self):while True:time.sleep(1)if Q.empty():print("Hans家没货了")continuen = random.randint(1, 10)n = Q.qsize() if n > Q.qsize() else nconsumer_list = []for i in range(n):item = self.Q.get()consumer_list.append(item)print(f"{self.name}消费了{consumer_list}")class Producer(threading.Thread):def __init__(self, name, Q: Queue, item_list: list):super(Producer, self).__init__()self.name = nameself.Q = Qself.item_list = item_listdef run(self):while True:time.sleep(1)m = random.randint(1, 3)producer_list = []for i in range(0, m):n = random.randint(0, len(self.item_list) - 1)self.Q.put(self.item_list[n])producer_list.append(self.item_list[n])print(f"{self.name}生产了{producer_list}")print(f"库存:{str(list(self.Q.queue))}")if __name__ == '__main__':Q = Queue(20)item_list = ["apple", "huawei", "xiaomi", "meizu", "oppo", "sansumg"]producer = Producer("Hans", Q, item_list)consumer = Consumer("Lily", Q)producer.start()consumer.start()

http://www.lryc.cn/news/163487.html

相关文章:

  • idea的安装
  • Unity下如何实现RTMP或RTSP播放端录像?
  • 【Python】Python基础语法
  • I2C总线驱动:裸机版、应用层的使用、二级外设驱动三种方法
  • Unix Network Programming Episode 77
  • 解决Ubuntu无法安装pycairo和PyGObject
  • Android Handler 机制解析
  • 酒店固定资产管理怎么分类
  • OpenCV(三十一):形态学操作
  • Python之面向对象(二)
  • ESP32用作经典蓝牙串口透传模块与手机进行串口通信
  • Python 操作 CSV
  • 自动化运维工具Ansible教程(二)【进阶篇】
  • 嵌入式Linux基础学习笔记目录
  • JVM | 垃圾回收器(GC)- Java内存管理的守护者
  • yolov5添加ECA注意力机制
  • 华为在高端智能手机市场再次撕开了一道深深的口子
  • 前端设计模式和设计原则之设计模式
  • 提高在速卖通产品上的曝光率——自养号测评优势全面解析!
  • 指针进阶(二)
  • 【HCIE】03.BGP高级特性
  • 单个处理数据祖籍列表层级关系
  • Maven部署打包多环境(开发、测试、生产)配置教程
  • 【计算思维题】少儿编程 蓝桥杯青少组计算思维 数学逻辑思维真题详细解析第9套
  • 【Hello Algorithm】贪心算法
  • TOP-K问题
  • 【保姆级从0到1】UE5 蓝图入门教程1:关卡、蓝图入门
  • 【码银送书第六期】《ChatGPT原理与实战:大型语言模型的算法、技术和私有化》
  • redis 报错 Redis protected-mode 配置文件没有真正启动
  • 解决a标签内容中img标签和p标签垂直方向间隔太大的问题