Python多线程threading模块调用后运行没动静。大神帮忙看看问题在哪吧

新来小小小菜鸟 新来小小小菜鸟 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

import threading
import time

products=[]
condition = threading.Condition()
class Consumer(threading.Thread):
def consume(self):
global condition
global products
condition.acquire()
if len(products)==0:
condition.wait()
print('消费提醒:没有产品去消费了')
products.pop()
print('消费者提醒:消费1个产品')
print('消费者提醒:还能消费的产品数为'+str(len(products)))
condition.notify()
condition.release()
def run(self):
for i in range(0,20):
time.sleep(4)
self.consume()
class Producer(threading.Thread):
def produce(self):
global condition
global products
condition.acquire()
if len(products)==10:
condition.wait()
print('生产者提醒:生成的产品数为'+str(len(products)))
print('生产者提醒:停止生产!')
products.append(1)
print('生产者提醒:产品总数为'+str(len(products)))
condition.notify()
condition.release()
def run(self):
for i in range(0,20):
time.sleep(1)
self.produce()
producer=Producer()
consumer=Consumer()
consumer.start()
producer.start()
producer.join()
consumer.join()

正常运行输出应该是下面的样子:

生产者提醒:产品总数为1
生产者提醒:产品总数为2
生产者提醒:产品总数为3
消费者提醒:消费1个产品
消费者提醒:还能消费的产品数为2
生产者提醒:产品总数为3
生产者提醒:产品总数为4
生产者提醒:产品总数为5
生产者提醒:产品总数为6
消费者提醒:消费1个产品
消费者提醒:还能消费的产品数为5
生产者提醒:产品总数为6
生产者提醒:产品总数为7
生产者提醒:产品总数为8
生产者提醒:产品总数为9
消费者提醒:消费1个产品
消费者提醒:还能消费的产品数为8
生产者提醒:产品总数为9
生产者提醒:产品总数为10
消费者提醒:消费1个产品
消费者提醒:还能消费的产品数为9
生产者提醒:产品总数为9
生产者提醒:停止生产!
生产者提醒:产品总数为10
...


求大神帮忙指出问题帮忙解决下。谢谢了
...全文

相关推荐

Python多线程threading和multiprocessing模块实例解析

主要介绍了Python多线程threading和multiprocessing模块等相关内容,分享了相关代码示例,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下

weixin_38738005

Python 多线程,threading模块,创建子线程的两种方式示例

主要介绍了Python 多线程,threading模块,创建子线程的两种方式,结合实例形式分析了Python线程的原理与创建子线程的相关实现技巧,需要的朋友可以参考下

weixin_38593380

Python线程threading模块用法详解

主要介绍了Python线程threading模块用法,结合实例形式总结分析了Python线程threading模块基本功能、原理、相关函数使用方法与操作注意事项,需要的朋友可以参考下

weixin_38610070

python多线程-threading模块.pdf

python多线程-threading模块.pdf

huakai218

【python内功修炼006】:基于threading模块的多线程操作(详解)

文章目录一、threading模块介绍二、:threading模块主要对象三、threading.Thread对象1、语法2、参数3、常用方法四、python开启线程的两种方法1、使用threading.Thread 线程对象2、继承父类threading.Thread五、Threading模块主要函数1、主要函数介绍2、代码实例六、守护线程和非守护线程1、守护线程介绍2、守护进程实例 (1)3、守护进程实例 (2)七、线程同步(Look)1、代码案例2、Look线程同步案例3、 with语法用于线程同步案例八、多线程与多进程的理解(代码实例)1、 共享数据(内存地址)2、进程和线程的执行速度

weixin_38548394
评论 2
收藏 已收藏
分享
返回顶部