时间:2021-05-22
线程锁相当于同时只能有一个线程申请锁,有的场景无数据修改互斥要求可以同时让多个线程同时运行,且需要限制并发线程数量时可以使用信号量
两个或者多个线程需要交互时,且一个进程需要根据另一线程状态执行对应操作时,可以通过event来设置线程状态达到期望的效果,下面是一个红绿灯的例子
当多个线程需要交互数据可以使用queue来进行数据传递,下面是经典的生产者消费者多线程模型示例,其中包含线程queue的基本使用方法
my_queue = queue.Queue() #实例化一个队列queue1 = queue.LifoQueue() #后进 先出队列queue2 = queue.PriorityQueue() #带优先级的队列def pro(): for i in range(100): my_queue.put(i) #队列里面放数据def con(): while my_queue.qsize() > 0: #当队列有数据时候从队列取数据 print("i an a consumer,get num %s"%my_queue.get(timeout=3)) time.sleep(2) else: print("my queue is empty")Pro = threading.Thread(target=pro)Pro.start()for j in range(10): Con = threading.Thread(target=con) Con.start()以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、生产者消费者模型介绍1.1为什么需要使用生产者消费者模型生产者是指生产数据的任务,消费者是指消费数据的任务。当生产者的生产能力远大于消费者的消费能力,生产者
生产者消费者模型生产者:生产任务的个体;消费者:消费任务的个体;缓冲区:是生产者和消费者之间的媒介,对生产者和消费者解耦。当缓冲区元素为满,生产者无法生产,消费
1、生产者消费者模型作用和示例如下:1)通过平衡生产者的生产能力和消费者的消费能力来提升整个系统的运行效率,这是生产者消费者模型最重要的作用2)解耦,这是生产者
概述对于多线程程序来说,生产者和消费者模型是非常经典的模型。更加准确的说,应该叫“生产者-消费者-仓库模型”。离开了仓库,生产者、消费者就缺少了共用的存储空间,
生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能