爬虫相关基础技术铺垫---多线程Thread和队列Queue应用
2024-10-07 01:23:14
from queue import Queue
from threading import Thread
class mydownloader(Thread):
def __init__(self,queue):
Thread.__init__(self)
self.queue = queue
def run(self):
i = 0
mydict={}
#print("当前队列容量{}".format(self.queue.qsize()))
while True:
if self.queue.qsize()==0:
print("完美收官!")
break
print("当前队列容量{}\r\n".format(self.queue.qsize()))
print("处理第{}波次".format(i))
mydict = self.queue.get()
print("我爱{},他今年芳龄{}".format(mydict["name"],mydict["age"]))
print("处理后队列容量{}".format(self.queue.qsize()))
i+=1
def main():
queue = Queue()
queue.put({"name": "程劲", "age": 21})
queue.put({"name": "陈培昌", "age": 19})
queue.put({"name": "厉智", "age": 31})
queue.put({"name": "徐晓冬", "age": 40})
queue.put({"name": "奥", "age": 36})
for i in range(2):
cpc = mydownloader(queue)
cpc.daemon=True
cpc.start()
queue.join() #if __name__=="__main__":
main()
结果: 当前队列容量5 处理第0波次
我爱程劲,他今年芳龄21
处理后队列容量4
当前队列容量4 当前队列容量4
处理第1波次
我爱陈培昌,他今年芳龄19
处理后队列容量3
当前队列容量3 处理第0波次 处理第2波次我爱厉智,他今年芳龄31 处理后队列容量2我爱徐晓冬,他今年芳龄40 当前队列容量1
处理后队列容量1 当前队列容量1 处理第3波次
我爱奥,他今年芳龄36
处理第1波次处理后队列容量0 完美收官!
最新文章
- angular2系列教程(九)Jsonp、URLSearchParams、中断选择数据流
- js数据类型
- Spring JPA Junit 关闭自动回滚
- 【转载】PHP使用1个crontab管理多个crontab任务
- bash脚本编程之二 条件判断and 逻辑运算
- Kali Linux Web 渗透测试视频教程—第十课 w3af
- [笔记]学习HighCharts的使用(不错的web图表插件)
- WeUI首页、文档和下载 - 专为微信设计的 UI 库 - 开源中国社区
- CentOS 6.4 LNMP 环境编译安装
- Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单
- NullSafe基于Runtime的深度解析
- IOC的总结
- linux的crash之hardlock排查记录
- Dynamics CRM2013 业务规则的新建、激活与删除
- Angular4基本网络请求get、post方式
- SpringBoot集成Atomikos使用Oracle数据库mybatis、jta框架
- c# 采用datatable 快速导入数据至MSSQL的方法分享
- hibernate一级缓存和快照
- django admin 支持时间更改
- Maven支撑下的War应用依赖另外一个WAR应用的解决方案