每日一怼:垃圾桶都收到花了,你却没有

认识gevent之前我们先来认识一下协程,什么是协程?
在笔者的看来就是在A程序与B程序的反复调用执行。
当A程序执行结束后调用执行B程序,B程序结束后调用A程序,反复直至程序结束。
而什么是gevent呢?gevent就是一个简单的用来实现协程的第三方包。
在使用其时不可避免的要使用monkey patch来完成启动。
笔者这次使用的是patch_all(),其官方说明和传入数据如图。

可以看出它的功能异常强大,包含的monkey的所有补丁,给协程自动切换的功能。
好啦,让我们看代码吧

import gevent#导入协程包
import time
from gevent import monkey#导入monkey包,值得注意的是这个包一定要单独导入
monkey.patch_all()# 给所有的耗时操作打上补丁,协程自动切换
def work1():for i in range(5):print("work1",i)time.sleep(0.1)
def work2():for i in range(5):print("work2",i)time.sleep(0.1)
g1 = gevent.spawn(work1)#创建协程函数
g2 = gevent.spawn(work2)#创建协程函数
g1.join()# 等待协程完成,也可以使用time.sleep(10)代替join
g2.join()

注意点:一定要使用monkey包
    使用spawn创建一个协程

Python浅谈gevent实现协程相关推荐

  1. 学习笔记(35):Python网络编程并发编程-协程(yield,greenlet,gevent模块)

    立即学习:https://edu.csdn.net/course/play/24458/296457?utm_source=blogtoedu 协程(yield,greenlet,gevent) 1. ...

  2. Python 线程和进程和协程总结

    Python 线程和进程和协程总结 线程和进程和协程 进程 进程是程序执行时的一个实例,是担当分配系统资源(CPU时间.内存等)的基本单位: 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其 ...

  3. 线程 协程 python_在Python 的线程中运行协程的方法

    在一篇文章 理解Python异步编程的基本原理 这篇文章中,我们讲到,如果在异步代码里面又包含了一段非常耗时的同步代码,异步代码就会被卡住. 那么有没有办法让同步代码与异步代码看起来也是同时运行的呢? ...

  4. python从零开始到放弃_Python 协程从零开始到放弃

    0x00 前言 很久以前就听说 Python 的 async/await 很厉害,但是直到现在都没有用过,一直都在用多线程模型来解决各种问题.最近看到隔壁的 Go 又很火,所以决定花时间研究下 Pyt ...

  5. k8s与监控--从telegraf改造谈golang多协程精确控制

    从telegraf改造谈golang多协程精确控制 前言 telegraf是infuxdb公司开源出来的一个基于插件机制的收集metrics的 项目.整个架构和elastic公司的日志收集系统极其类似 ...

  6. python正在处理中_协程和 asyncio

    在本系列的 第 1 部分 中,您了解了 Python 迭代器:在 第 2 部分 中,您了解了 itertools.在这一部分,将了解一种称为协程(Coroutines)的特殊的生成器函数.您还将了解另 ...

  7. 【python 笔记/小白快速入门python】python浅谈(一)犹抱琵琶半遮面

    python浅谈(一)犹抱琵琶半遮面 继浅谈(零)初识庐山真面目[https://blog.csdn.net/HarryOtter/article/details/90519877 ] 之后,终于窥得 ...

  8. python 进程,线程,协程篇

    python 进程,线程,协程篇 ssh 线程 进程 线程,进程区别 threading 模块,两种调用方式 python GIL全局解释器锁(Global Interpreter Lock) Joi ...

  9. python使用gevent实现协程

    gevent是一个基于协程的python网络库,在遇到IO阻塞时,程序会自动进行切换,可以让我们用同步的方式写异步IO代码. # coding:utf8 import requests import ...

最新文章

  1. 做好自己该做的,赢取自己这一份努力
  2. python 爬虫代理
  3. jQuery 插件 Validation表单验证 使用步骤(详细的)
  4. SQL高级---SQL UNION 和 UNION ALL 操作符
  5. 【Leetcode】112. 路径总和
  6. python爬虫05--添加header
  7. 每日一题(易错):哪些REPEAT_INTERVAL参数能够实现每30分钟运行job
  8. tensorflow 中的 array_ops
  9. Layui表单验证lay-verify属性:自定义校验
  10. 一个五年Android开发者百度、阿里、聚美、映客的面试心经
  11. 红外测距模块工作原理_红外测温仪方案工作原理
  12. 太极计算机股份有限公司面试经历
  13. 【基础知识】【模块介绍】8位8段数码管(74HC595)【硬件部分】
  14. 如何查看路由器中的宽带密码
  15. 单目3D多人姿态估计网络(整合自上而下和自下而上网络)
  16. android回环地址,Android WebRTC完整入门教程02: 本地回环
  17. Mac系统上查看端口占用和释放端口
  18. 网络1711班 C语言第一次作业批改总结
  19. 胜不骄 败不馁 心胸似大海宽广
  20. 美团点评校招内推啦!!!!

热门文章

  1. python批量下载百度照片
  2. SQL Tuning Advisor使用实例
  3. REUSE_ALV_GRID_DISPLAY显示ALV,设置可编辑时,与内表数据同步问题
  4. 解决python中TypeError: not enough arguments for format stringj
  5. PHP获取URL完整路径及物理路径
  6. 编程同写作,写代码只是在码字
  7. Jeecg-Boot使用war包在Tomcat中部署之参考教程
  8. jQuery 源码解析(三十一) 动画模块 便捷动画详解
  9. ACM常用C++模板 包括常用头文件
  10. 前端 网络安全 前端优化 代码架构 笔记