Python中使用queue进行生产者消费者时,如何停止

stream_ 2021-02-20 12:23:18
python中的queue是线程安全的,如果queue为空则会阻塞。
那么当我一个生产者线程,向queue中塞入货物。十个消费者线程,从queue中取出货物。
我看到别人写的消费者是while True
请问如何让生产者不再生产时,消费者处理完queue中的数据就停止运行。
谢谢各位大佬
...全文
218 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
青柍 2021-02-22
可以让生产者在产生数据时,每次传数据多传一个数据代表是否生产完,比如未生产完为1,生产完为2,每次修改while True中的数据为此数据,然后判断如果为2了,再判断queue是否为空,不知是否是这意思
  • 打赏
  • 举报
回复
stream_ 2021-02-22
引用 1 楼 chuifengde 的回复:
那不就是判断queue中是不是为空吗?为空就break
多线程下,queue中的数据量是动态变化的,十个消费者一个生产者,可能生产者还没生产完,消费者已经把queue中的货物消化完了。
  • 打赏
  • 举报
回复
chuifengde 2021-02-21
那不就是判断queue中是不是为空吗?为空就break
  • 打赏
  • 举报
回复
相关推荐
发帖
脚本语言

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • ITBOB • 鲍勃
加入社区
帖子事件
创建了帖子
2021-02-20 12:23