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

深圳市龙华区价格优化网站建设

深圳市龙华区,价格优化网站建设,seo推广公司招商,如何查看网站建站程序greenlet已经实现了协程,但是这个还要人工切换, 这里介绍一个比greenlet更强大而且能够自动切换任务的第三方库,那就是gevent。 安装第三方库 python -m pip install gevent gevent:遇到IO操作时,会进行自动切换,属于主…

greenlet已经实现了协程,但是这个还要人工切换,
这里介绍一个比greenlet更强大而且能够自动切换任务的第三方库,那就是gevent。
安装第三方库
python -m pip install gevent
gevent:遇到IO操作时,会进行自动切换,属于主动式切换
注意:文件命名不要和第三方模块或内置模块重名

使用


gevent. spawn (函数名):创建协程对象
gevent. sleep(): 耗时操作
gevent. join(): 阻塞,等待某个协程执行结束
gevent. joinall(): 等待所有协程对象都执行结束再退出,参数是一个协程对象列表


import gevent
import time
def sing():print('在唱歌')gevent.sleep(2)print('唱完了')
def dance():print('在跳舞')gevent.sleep(2)print('跳完了')
if __name__ == '__main__':#1. 创建协程对象g1 = gevent.spawn(sing)g2 = gevent.spawn(dance)#2.阻塞,等待协程执行结束g1.join()    #等待对象执行结束g2.join()

joinall()的使用


import gevent
def sing(name):for i in range(3):print(f'{name}在唱歌,被送走的第{i}次')if __name__ == '__main__':gevent.joinall([gevent.spawn(sing,'lalala'),gevent.spawn(sing,'hahaha')])
#joinall():等待所有的协程都执行结束再退出

monket补丁

monket补丁:拥有在模块运行时替换的功能


#导入模块
import time
import gevent
from gevent import monkeymonkey.patch_all()      #将用到的time.sleep()代码替换成gevent里面自己实现耗时操作的gevent.sleep()代码
#注意:monkey.patch_all()必须放在被打补丁者的前面def sing(name):for i in range(3):time.sleep(2)print(f'{name}在唱歌,被送走的第{i}次')if __name__ == '__main__':gevent.joinall([gevent.spawn(sing,'lalala'),gevent.spawn(sing,'hahaha')])

总结

1线程是CPU调度的基本单位,进程是资源分配的基本单位
2进程、线程和协程对比
进程:切换需要的资源最大,效率最低
线程:切换需要的资源一般,效率一般
协程:切换需要的资源最小,效率高
3.多线程适合IO密集型操作(文件操作、爬虫),多进程适合CPU密集型操作(科学及计算、对视频进行高清解码、计算圆周率
进程、线程、协程都是可以完成多任务的,可以根据自己实际开发的需要选择使用。

http://www.dtcms.com/a/430661.html

相关文章:

  • 博客标题:解密 IntelliJ IDEA 调试:当你的 List 不仅仅是 List
  • 12.如何使用 JavaScript 构建便签应用程序 | 入门项目
  • 第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • 全栈工程师项目练习记录
  • Vue CLI为何不显示webpack配置
  • 设计模式之策略模式学习
  • 自己做的网站外国人能访问吗广告设计公司有哪些渠道通路
  • 分布式专题——24 Kafka功能扩展
  • 范式革命:RDMA 如何让网络成为 “分布式内存总线”
  • 如何弄公司网站青岛专业网站制作
  • Langchain4j笔记
  • 云计算介绍
  • 什么是Redis哨兵机制?
  • Web本体语言(OWL)
  • 快学快用系列:一文学会java后端WebApi开发
  • 网站加速器免费永久网站开发学习课程
  • SpringBoot 整合Jasypt 实现配置文件加密读取操作详解
  • apache 服务器如何使用
  • CI/CD 流水线与 agentic AI:如何创建自我纠正的 monorepos
  • Coze源码分析-资源库-编辑工作流-后端源码-IDL/API/应用服务层
  • 网站建设与维护课程设计报告书wordpress 多媒体管理系统
  • 一文了解国产算子编程语言 TileLang,TileLang 对国产开源生态的影响与启示
  • C#和Java正则表达式开发
  • 从零开始:MCP数据库助手(一)- 基础搭建
  • ORB_SLAM2原理及代码解析:SetPose() 函数
  • 蚌埠市建设学校网站网站排名权重怎么做
  • Android android.util.LruCache源码阅读
  • 安卓基础组件020-页面跳转传递数据001
  • Postman 学习笔记 IV:Workflow、Newman 与 Mock Server 实战技巧
  • 安卓基础组件016--第三方Toasty组件