python已协程方式处理任务实现过程


Posted in Python onDecember 27, 2019

这篇文章主要介绍了python已协程方式处理任务实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

#从genent中导入monky模块①
from gevent import monkey
#把程序变成协程的方式运行②
monkey.patch_all()
import gevent,requests,time
#导入requests和time
start = time.time()
#记录程序开始时间
 
url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8个网站封装成列表
 
def get_data(url):
  r = requests.get(url)
  # 用requests.get()函数爬取网站
  print(url, time.time()-start,r.status_code)
 
task_list=[]
# 创建一个空列表
for url in url_list:
  # 用gevent里面的spawn函数创建任务 get_data是方法名,url是参数③
  task=gevent.spawn(get_data,url)
  # 将创建的任务添加到task_list④
  task_list.append(task)
#执行任务列表中的所有任务⑤
gevent.joinall(task_list)
 
end = time.time()
#记录程序结束时间
print(end-start)
#end-start是结束时间减去开始时间,就是最终所花时间。

使用队列,代码如下:

#从genent中导入monky模块①
from gevent import monkey
#把程序变成协程的方式运行②
monkey.patch_all()
import gevent,requests,time
#从gevent库里导入queue模块
from gevent.queue import Queue
#导入requests和time
start = time.time()
#记录程序开始时间
 
url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8个网站封装成列表
#创建队列对象,并赋值给work。
work=Queue()
for url in url_list:
  # 用put_nowait()函数可以把网址都放进队列里。
  work.put_nowait(url)
 
 
def get_data():
  # 当队列不是空的时候,就执行下面的程序。
  while not work.empty():
    # 用get_nowait()函数可以把队列里的网址都取出。
    url=work.get_nowait()
    r = requests.get(url)
    # 用requests.get()函数爬取网站 qsize队列长度
    print(url, work.qsize(),r.status_code)
 
task_list=[]
# 创建一个空列表
# 创建了2个爬虫
for x in range(2):
  # 用gevent里面的spawn函数创建任务 get_data是方法名
  task=gevent.spawn(get_data)
  # 将创建的任务添加到task_list④
  task_list.append(task)
#执行任务列表中的所有任务⑤
gevent.joinall(task_list)
 
end = time.time()
#记录程序结束时间
print(end-start)
#end-start是结束时间减去开始时间,就是最终所花时间。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python dict remove数组删除(del,pop)
Mar 24 Python
Python实现大文件排序的方法
Jul 10 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 Python
在python中实现对list求和及求积
Nov 14 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 #Python
python操作gitlab API过程解析
Dec 27 #Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 #Python
python使用协程实现并发操作的方法详解
Dec 27 #Python
Python调用.NET库的方法步骤
Dec 27 #Python
IronPython连接MySQL的方法步骤
Dec 27 #Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 #Python
You might like
ie6 动态缩略图不显示的原因
2009/06/21 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
JavaScript全局函数使用简单说明
2011/03/11 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
js实现交通灯效果
2017/01/13 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
进一步探究Python中的正则表达式
2015/04/28 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python中模块的__all__属性详解
2017/10/26 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python日期时间Time模块实例详解
2019/04/15 Python
Python是什么 Python的用处
2020/05/26 Python
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
求职自荐信格式
2013/12/04 职场文书
节能标语大全
2014/06/21 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers