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 完美收官!

爬虫相关基础技术铺垫---多线程Thread和队列Queue应用的更多相关文章

  1. Python进阶【第二篇】多线程、消息队列queue

    1.Python多线程.多进程 目的提高并发 1.一个应用程序,可以有多进程和多线程 2.默认:单进程,单线程 3.单进程,多线程 IO操作,不占用CPU python的多线程:IO操作,多线程提供并 ...

  2. 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  3. 03.Python网络爬虫第一弹《Python网络爬虫相关基础概念》

    爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...

  4. Python网络爬虫第一弹《Python网络爬虫相关基础概念》

    爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...

  5. Python网络爬虫相关基础概念

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  6. python爬虫相关基础概念

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.但是php在实现爬虫中支持多线程和多进程方面做得不好. 2.java ...

  7. Python爬虫《Python网络爬虫相关基础概念》

    引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从 ...

  8. 03,Python网络爬虫第一弹《Python网络爬虫相关基础概念》

    爬虫介绍 引入 为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从就业上. 我们都知道,当前我们所处的时代 ...

  9. 《Python网络爬虫相关基础概念》

    爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...

随机推荐

  1. Ciso三层交换 上vlan间互通, 端口映射到vlan

    路由器2911配置: !hostname router interface GigabitEthernet0/0 ip address 10.0.0.2 255.0.0.0 ip nat outsid ...

  2. (转) pip Fatal error in launcher: Unable to create process using

    接上篇“Eclipse启动报错:JVM terminated. Exit code=2”,今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python ...

  3. Rsyslog收集应用日志

    收集系统其它服务日志,在客户端node1 上操作,示例以openstack-nova 服务的日志为例: 1.先修改配置文件 /etc/rsyslog.conf,完整内容如下: [root@node1 ...

  4. HDU 1203 I NEED A OFFER! (动态规划、01背包、概率)

    I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  5. cm日志的清理

    #过一段时间后,cm server的空间越来越大 #删除日志/bin/rm /var/lib/cloudera-host-monitor/ts/*/partition*/* -rf/bin/rm /v ...

  6. Spring MVC的异步模式(ResponseBodyEmitter、SseEmitter、StreamingResponseBody) 高级使用篇

    DeferredResult高级使用 上篇博文介绍的它的基本使用,那么本文主要结合一些特殊的使用场景,来介绍下它的高级使用,让能更深刻的理解DeferredResult的强大之处. 它的优点也是非常明 ...

  7. 设计模式:模板方法(Template method)

    首先我们先来看两个例子:冲咖啡和泡茶.冲咖啡和泡茶的基本流程如下: 所以用代码来创建如下: 咖啡:Caffee.java public class Coffee { void prepareRecip ...

  8. java保留小数点的几个方法

    方法一: String类自带的方法 String.format("%.2f", 1.2548); "%.2f"其中的数字决定保留几位方法二: 格式化的方法 pr ...

  9. Windows账户管理

    windows账户管理 最近部署人员给我们提了一个需求,就是希望简化部署过程. 为了能够远程桌面控制终端电脑,他们需要为每台终端设置进行一些设置,例如创建用户名和密码,开启允许 远程桌面设置,以及开机 ...

  10. 第一章 T-SQL查询和编程基础 T-SQL语言基础(2)

    T-SQL查询和编程基础 (2) 1.3 创建表和定义数据完整性 注意:表是属于架构,而架构又是属于数据库的 -- Create a database called testdb IF DB_ID(' ...