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

stream_ 2021-02-20 12:23:18
python中的queue是线程安全的,如果queue为空则会阻塞。
那么当我一个生产者线程,向queue中塞入货物。十个消费者线程,从queue中取出货物。
我看到别人写的消费者是while True
请问如何让生产者不再生产时,消费者处理完queue中的数据就停止运行。
谢谢各位大佬
...全文
369 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧