from multiprocessing import JoinableQueue
from threading import Thread def worker(q):
while True:
try:
item = q.get()
print(item)
if item % 5 == 0:
if item == 5:
time.sleep(20)
q.put(111)
q.task_done()
except Exception as e:
print(e) q = JoinableQueue() import time
def customer(q):
for i in range(100):
try:
q.put(i)
except Exception as e:
print(e)
ct = Thread(target=customer, name='customer', args=(q,))
ct.daemon = True
ct.start()
ct.join()
for i in range(4):
t = Thread(target=worker, name='worker'+str(i), args=(q,))
t.daemon = True
t.start() q.join()
print('end')

一旦消费者速度快,生产者速度慢,可能导致提前结束

所以添加任务不能起一个线程,一直加,一旦速度慢下来,就提前结束了。

保险的是在worker中 task_done之前添加。

最新文章

  1. java基础之 序列化
  2. BZOJ 1584 DP
  3. 使用MDK3探测隐藏SSID名称
  4. 关于div标签的title属性一闪一闪不正常显示的原因
  5. cookie记住密码功能
  6. composer 安装使用
  7. WPF Binding值转换器ValueConverter使用简介(二)-IMultiValueConverter
  8. 杭电1002 Etaoin Shrdlu
  9. spring 分散配置
  10. 各位Coder看过来
  11. JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
  12. ansible基础-变量
  13. 基于FPGA视频时序生成中的库文件
  14. [SCOI2014]方伯伯的OJ(线段树)
  15. javascript时间处理
  16. 关于如何使`(a === 1 && a === 2 && a === 3)`返回`true`问题的思考
  17. Github链接及git学习心得总结
  18. javascript转换时间戳
  19. Swift网络封装库Moya中文手册之Targets
  20. python正则表达式,以及应用[下载图片]

热门文章

  1. This program cannot be run in DOS mode.
  2. 七、WebApi跨域操作
  3. Git --06 Git-gui安装
  4. Django--Auth模块使用
  5. django学习笔记--数据库中的多表操作
  6. Sass值列表
  7. ivew 双向绑定时间控件
  8. Python3.5-20190529-自动登录百度
  9. 人生苦短_我用Python_openpyxl库读取Excel文件数据_008
  10. GO富集分析 信号通路