这篇主要是接着上篇的,实验gevent嵌套使用,看情况如何。还是先上代码。

 #!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2020-03-02 19:53:11
# @Author : Flyinghappy (671474@qq.com)
# @Link : https://www.cnblogs.com/flyinghappy/
# @Version : $Id$
#note:gevent嵌套使用实验
from gevent import monkey
monkey.patch_all()
import gevent
import time
import asyncio
import requests
import urllib.request
def runinfo(func):
def inner(*args):
print('开始访问---'+str(args[0]))
start_time=time.time()
result=func(*args)
stop_time=time.time()
print(func.__name__+'------running time is: %s'% (stop_time-start_time))
print('结束访问---'+str(args[0]))
return result
return inner
@runinfo
def taskfun(url):
html=urllib.request.urlopen(url).read()
return html
@runinfo
def taskfun_outer(num_list):
url=[
'http://www.sina.com.cn',
'http://www.cnr.cn',
'http://www.hao123.com'
] g_list=[]
for i in range(len(url)):
g=gevent.spawn(taskfun,url[i])
g_list.append(g)
gevent.joinall(g_list) def main():
start_time=time.time()
num_list=['一']
g1=gevent.spawn(taskfun_outer,num_list)
num_list=['二']
g2=gevent.spawn(taskfun_outer,num_list)
gevent.joinall([g1,g2])
stop_time=time.time()
print('main---running time is: %s'% (stop_time-start_time))
if __name__ == '__main__':
main()

再来看看运行结果哈:我截图了两张,大家可以仔细对比一下。说明是异步执行的。

另外一张截图

PS:呵呵呵,说明实验成功了!可以嵌套使用。

Python学习笔记--gevent嵌套使用的更多相关文章

  1. Python学习笔记(九)

    Python学习笔记(九): 装饰器(函数) 内置函数 1. 装饰器 1. 作用域 2. 高阶函数 3. 闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就 ...

  2. Python学习笔记(七)

    Python学习笔记(七): 深浅拷贝 Set-集合 函数 1. 深浅拷贝 1. 浅拷贝-多层嵌套只拷贝第一层 a = [[1,2],3,4] b = a.copy() print(b) # 结果:[ ...

  3. python学习笔记(二)、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

  4. Python学习笔记010——匿名函数lambda

    1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...

  5. Python学习笔记(四)函数式编程

    高阶函数(Higher-order function) Input: 1 abs Output: 1 <function abs> Input: 1 abs(-10) Output: 1 ...

  6. Python 学习笔记(下)

    Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...

  7. Python 学习笔记(上)

    Python 学习笔记(上) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(上) 基础知识 基本输入输出 模 ...

  8. Python学习笔记.md

    Python学习笔记 1.变量类型 x=5 int x="ss" string x='a' string x=True bool #查看变量类型 type(x) 2.字符串常用操作 ...

  9. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

随机推荐

  1. iOS之正则表达式(一)

    这几天研究正则表达式发现正则表达式真是个好东西,可以在支付的时候轻松匹配交易数额,入门内容以及匹配如下: @interface ViewController () @property (weak, n ...

  2. 如何使用 babel

    babel-cli 在项目内运行 babel-cli 配置.babelrc 配置.jshintrc Babel 用于将 ES6 的代码转化为 ES5,使得 ES6 可以在目前的浏览器环境下使用.学习使 ...

  3. logstash nested内嵌字段 field protobuf解码 codec 的解决办法

    logstash nested内嵌字段 field protobuf解码 codec 的解决办法 主要需求 logstash-codec 下https://www.elastic.co/guide/e ...

  4. js - 观察者模式与订阅发布模式

    零.序言 转载&参考: 1.JavaScript 设计模式系列 - 观察者模式 2.JavaScript 设计模式(六):观察者模式与发布订阅模式 一.观察者模式(observer) 概要: ...

  5. c++与c语言的区别部分

    1.new       <malloc> delete    <free> 2.多态: 重载 <函数     操作符>   类似于c中的变化参数 虚函数 3.模板 ...

  6. Ubuntu navicat试用到期及乱码问题

    对于Ubuntu18.04,navicat试用过期,我这采用的是删掉记录,使其重新试用 网上有的说删掉/home/.navicat64/system.reg,有的又加上删除.update-timest ...

  7. MySQL的详细操作

    MySQL的详细操作 存储引擎 不同的数据应该有不同的处理机制 mysql存储引擎 Innodb:默认的存储引擎 查询速度较myisam慢 但是更安全,支持事务,行锁,外键由于以上的支持,数据更安全, ...

  8. KMP算法 详解+模板

    本文大部分摘自szy学长的ppt<string>中的KMP部分. %%%膜拜szy大神orz 1.概述 KMP 算法是用来解决单模匹配问题的一种算法. 如果暴力的进行单模匹配,那么时间复杂 ...

  9. 成为一名PHP专家其实并不难

    本文作者Bruno Skvorc是一名资深的Web开发者.在这篇文章里主要是讲述成为一名专业的PHP专家所要经历的过程,以及在这个过程里要如何学习掌握技巧和对工具的舍取.(以下为编译内容) 当阅读各种 ...

  10. 如何处理xml文件!看看这里

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...