协程的认识
发布日期:2022-02-23 07:42:46
浏览次数:9
分类:技术文章
本文共 639 字,大约阅读时间需要 2 分钟。
协程的好处
协程相比线程切换操作不耗费资源,线程的切换需要保存和恢复上下文,并且每个线程都有自己的cache缓存,比较好性能
线程切换导致代码碎片化,每次都要判断是否要切换,
协程只需要把所有的操作弄到一起,有一个耗时操作就切换到下一个操作继续执行线程的问题在于他不会主动触发调度器,尤其是cpu密集型的,没有io操作
协程的实现
greenlet模块和gevent模块
greenlet需要根据程序的设计,即认为的切换协程 gevent是有耗时操作自动切换 from gevent import monkey; import gevent import urllib2#有IO才做时需要这一句
monkey.patch_all()def myDownLoad(url):
print('GET: %s' % url) resp = urllib2.urlopen(url) data = resp.read() print('%d bytes received from %s.' % (len(data), url))gevent.joinall([
gevent.spawn(myDownLoad, 'http://www.baidu.com/'), gevent.spawn(myDownLoad, 'http://www.itcast.cn/'), gevent.spawn(myDownLoad, 'http://www.itheima.com/'), ])转载地址:https://blog.csdn.net/weixin_42781748/article/details/82084058 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月20日 00时24分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
登录oracle数据库时常用的操作命令整理
2019-05-01
微信小程序实现安卓机下拉不刷新,ios下拉刷新操作(自定义底部tab栏在安卓机下拉)
2019-05-01
小程序动态获取组件高度(自定义Tabbar的高度)
2019-05-01
如何是实现微信会员开卡组件中一个手机号绑定一个微信号(思路篇)
2019-05-01
has been blocked by CORS policy: Response to preflight request doesn‘t pass access control check 报错
2019-05-01
使用aspose.words 18.6实现pdf文档转换
2019-05-01
包机制介绍
2019-05-01
Java数组详解
2019-05-01
Java面向对象详解
2019-05-01
在Debian 8上使用Apt-Get安装Java
2019-05-01
vs中动态DLL与静态LIB工程中加入版本信息的方法
2019-05-01
大数据分析技术与应用一站式学习(值得收藏)_v20200418
2019-05-01
Qt 在windows下的串口读写
2019-05-01
SpringApplication执行流程
2019-05-01
自定义Starter
2019-05-01
分布式事务原理探究(一)
2019-05-01
spring cloud consul 应用的多实例名的解决
2019-05-01
LeetCode 560 和为 k 的子数组
2019-05-01
MYSQL的身体,POSTGRESQL 的头脑
2019-05-01