Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【说站】python gevent的原理分析

【说站】python gevent的原理分析

作者头像
很酷的站长
发布于 2022-11-23 10:28:30
发布于 2022-11-23 10:28:30
38700
代码可运行
举报
运行总次数:0
代码可运行

python gevent的原理分析

原理

1、greenlet遇到IO操作(指input、output输入输出,如网络、文件操作等)时,如访问网络,则自动切换到其它greenlet。 2、等IO操作完成后,再在适当的时候切换回来继续执行。

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import gevent
 
 
def fun(n):
    for i in range(n):
        print(gevent.getcurrent(), i)
 
        
g1 = gevent.spawn(fun, 5)
g2 = gevent.spawn(fun, 5)
g3 = gevent.spawn(fun, 5)
 
g1.join()
g2.join()
g3.join()

以上就是python gevent的原理分析,希望对大家有所帮助。

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​Python协程
协程是 python 中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带 CPU 上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU 上下文那么程序还是可以运行的。
忆想不到的晖
2021/04/04
6110
​Python协程
Python多任务教程:进程、线程、协程
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序、数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。
Python学习者
2023/08/08
3370
python网络-多任务实现之协程(27)
协程不是进程,也不是线程,它就是一个函数,一个特殊的函数——可以在某个地方挂起,并且可以重新在挂起处继续运行。所以说,协程与进程、线程相比,不是一个维度的概念。
Se7eN_HOU
2019/06/26
8590
Python协程之Gevent
协程,又称微线程,即为轻量级的线程。 python中实现协程是基于Gevent模块,Gevent模块内部封装了greenlet模块;greenlet模块实现了在单线程中切换状态,Gevent模块在此之上还实现了遇到I/O操作自动切换,使程序运行更快;但是Gevent只在遇到自己认识的I/O操作时切换,所以需要使用Gevent包的一个模块:猴子补丁,使用了这个补丁,Gevent会直接修改在它之后导入的模块中的I/O操作,使其可以让Gevent识别,从而开启协程。 Greenlet与Gevent模块都是python的第三方模块,需安装使用。
py3study
2020/01/07
8760
测试开发进阶(十)
进程之间通信 进程之间通信:使用队列 queue模块中的队列,只能用于一个进程中,各个线程之间进行通信 进程模块中的Queue:可以用于多个进程之间进行通信 ⚠️注意点:使用的时候要使用参数传递到各个进程任务中 from multiprocessing import Queue from multiprocessing import Process, Queue q = Queue() for i in range(5): q.put(i) def work1(q): while
zx钟
2019/08/29
3960
多任务—协程
协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。
py3study
2020/01/16
4120
Python使用gevent实现协程
  协程,又称微线程。英文名Coroutine。协程是Python语言中所特有的,在其他语言中没有。
py3study
2020/01/13
9930
Python基础|一文讲透 Python 协程
在类里面提供一个__iter__创建的对象是可迭代对象,可迭代对象是需要迭代器完成数据迭代的
陈晨135
2022/01/10
5010
concurrent.futures模块(进程池/线程池)
本节主题是实现单线程下的并发,即只在一个主线程,并且很明显的是,可利用的cpu只有一个情况下实现并发,
全栈程序员站长
2022/07/21
1.5K0
concurrent.futures模块(进程池/线程池)
Python 协程
协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。
Devops海洋的渔夫
2019/05/31
8360
协程
在gevent里使用tiem.sleep会失效,需要使用gevent.sleep,或者使用monkey补丁实现替换
py3study
2020/01/17
6360
Python并发编程之协程
协程:是单线程下的并发,又称微线程,纤程。协程是一种用户态的轻量级线程,即线程是由用户程序自己控制调度的。
py3study
2020/01/19
4670
Python并发编程之协程
多任务之多进程和协程实现
p1 = multiprocessing.Process(target = movietheaters)
不断折腾
2019/09/23
9100
多任务之多进程和协程实现
python3--协程,greenlet模块,gevent模块
之前学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。
py3study
2018/08/02
2.9K0
Python之协程
前言         在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。   随着我们对于效率的追求不断提高,基于单线程来实现并发又成为一个新的课题,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发。这样就可以节省创建线进程所消耗的时间。 为此我们需要先回顾下并发的本质:切换+保存状态   cpu正在运行一个任务
新人小试
2018/04/12
6770
Python之协程
Python多任务协程:编写高性能应用的秘密武器
测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。
霍格沃兹测试开发Muller老师
2024/01/24
2600
python协程回顾
自动切换 from gevent import monkey; monkey.patch_all()
小闫同学啊
2019/07/18
4800
【说站】Python中Gevent的使用
1、可以通过gevent轻松实现并发同步或异步编程。gevent中使用的主要模式是Greenlet,它是以C扩展模块的形式访问Python的轻量级协程。
很酷的站长
2022/11/24
3570
【说站】Python中Gevent的使用
【说站】Python继承的原理分析
Python中子类可以同时继承多个父类,如果继承了多个父类,那么属性的查找方式有两种,分别是:深度优先和广度优先。
很酷的站长
2022/11/23
3160
5.并发编程协程
  本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态
changxin7
2019/09/10
4590
相关推荐
​Python协程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档