当前位置: 首页 > backend >正文

协程gevent案例

from gevent import monkey
import gevent
import time# 协程:gevent,遇IO阻塞,自动切换
monkey.patch_all()def fun01():print("床前明月光")time.sleep(3)  # 3  2  1print("疑是地上霜")def fun02():print("举头望明月")time.sleep(3)  # 3  2  1print("低头思故乡")g1 = gevent.spawn(fun01)
g2 = gevent.spawn(fun02)
g1.join()
gevent的优势不仅仅是在代码中调用方便,厉害的是它拥有的monkey机制。
假设你不愿意修改原来已经写好的python代码,但是又想充分利用gevent机制,那么你就可以用monkey来做到这一点。你所要做的就是在文件开头打一个patch,
那么它就会自动替换你原来的thread、socket、time、multiprocessing等代码,全部变成gevent框架。这一切都是由gevent自动完成的。
注意这个patch是在所有module都import了之后再打,否则没有效果。甚至在编写的Web App代码的时候,不需要引入gevent的包,也不需要改任何代码,
仅仅在部署的时候,用一个支持gevent的WSGI服务器,就可以获得数倍的性能提升。
from gevent import monkeymonkey.patch_all()  # 必须放在其他导入之前! 模拟耗时操作import gevent  # 遇到IO阻塞 程序自动切换def demo(name):print("1开始执行昂", name)gevent.sleep(2)print("阻塞完毕1")def demo2(name):print("2开始执行昂", name)gevent.sleep(2)print("阻塞完毕2")g = gevent.spawn(demo, "丈八")
g2 = gevent.spawn(demo2, "丈八")
g.join()
print(gevent.__version__)

http://www.xdnf.cn/news/1466.html

相关文章:

  • 从代码学习深度学习 - 自动并行 PyTorch 版
  • AI飞行行为的可解释性与合规审计机制设计
  • React SSR + Redux 导致的 Hydration 报错踩坑记录与修复方案
  • 亚信安全与联通数科达成战略合作,成立联信事业部
  • 深入学习Axios:现代前端HTTP请求利器
  • flex修改主轴方向
  • 深入理解指针(2)
  • git提交
  • ctfhub-RCE
  • CDN加速http请求
  • 腾讯秋招面试题:bug生命周期中有哪些状态?
  • rl中,GRPO损失函数详解。
  • 需求质量验证-测试需求
  • GitLab_密钥生成(SSH-key)
  • 思科路由器密码绕过+重置
  • Vue 3中如何封装API请求:提升开发效率的最佳实践
  • Reactor编程模型介绍
  • Vue3 小功能记录:密码的显示与隐藏功能
  • WebXR教学 05 项目3 太空飞船小游戏
  • Synternet数据流正式上线Google Cloud Web3
  • FreeRTOS深度解析:队列集(Queue Sets)的原理与应用
  • Alertmanager的安装和详细使用步骤总结
  • 【锂电池剩余寿命预测】CNN卷积神经网络锂电池剩余寿命预测(Pytorch完整源码和数据)
  • 大模型RAG的召回模式
  • Vite vs Webpack 优势对比
  • 抱佛脚之学SSM六
  • 4.多表查询
  • AI与智能金融服务:如何利用AI分析大数据预测金融市场波动?
  • 获取发起DNS请求的真实进程及请求域名,不是取服务进程svchost.exe,做网络过滤或网络加速用得上。
  • Android 回显