协程这么好,它能完全代替线程么?
好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。
------
【资料图】
这个问题首先前提就有问题,谁说协程那么好的?任何技术肯定都有自己的适用场景,这种通用层面的技术则更是了。
协程本质上就是由用户代码主动在某个时间点出让 CPU,可以在任何一行出让,当然语言层或框架层的协程一般会在原本是阻塞函数的调用内部,让出 CPU 资源,不阻塞当前线程。
当然像 go 这种协程做的特别牛逼的,牛逼到它自己都不想承认自己是协程的语言,就另说了。
所以协程一般适用于 IO 密集型的高并发场景。
你要说就完全 CPU 密集型计算,那还不如开你 CPU 核数那么多线程呢,开了协程反而不能并行了,还多了协程间切换的损耗。
所以协程那么好,这句话就可以否了,同时也顺便拿出了一个场景,说明用协程替换线程是负优化的,自然协程也不能完全替换线程。
------
再有,刚刚是站在应用程序角度考虑,要分场景看是使用协程还是线程。再从操作系统层面考虑,协程就根本无法替代线程了。
你想,协程需要自己主动出让 CPU 资源,那要是操作系统使用协程来运行应用程序,那万一应用程序自己一直不出让 CPU,也不调用能产生阻塞操作进而间接出让 CPU 的代码,那不就坏事了。
再有,协程本身的优势在于切换成本小,本质是因为栈小,而且也不需要切换页表。
那要是操作系统真的拿协程来跑多应用程序,这些优势也就不复存在了,而且如果协程实现在了内核态,本身从用户态陷入内核态的切换也少不了。
所以本来协程有的优势,在这里全没了,还极大增加了不公平性。
------
最后,这俩事情本身就不好讨论替换这一说,因为他们本质都不一样。
协程说白了就是一段串行的指令流,只不过中间哪个地方往哪跳的逻辑,被封装在了 "协程" 这个概念里而已。
再者,协程本身也是要跑在线程中的,需要有载体,他们二者本身就是相辅相成的关系,何来替代呢,更别说完全替代了。
有时候,了解清楚一项技术的本质,就能更好看清这些问题的荒诞了。
今天阳了躺在床上实在无聊,就挑了个知乎上的问题回答了一下,看好多回答都没说在点子上,就码了这些字,感兴趣的同学可以点开阅读原文看看。
关键词: 应用程序
责任编辑:宋璟
-
协程这么好,它能完全代替线程么?
-
中达集团控股(00139.HK)12月20日起停牌 待公布补充公告|环球视讯
-
微速讯:抢劫刑事附带民事案件该怎么写?
-
那些年梅西为中国捐过的款:20岁到济南,主动捐助受灾球迷,15年来一直帮助中国孩子-世界滚动
-
承德露露董秘回复:公司财务状况良好,不存在问题
-
微粒贷贷款逾期50年还不起会影响征信吗
-
贝瑞基因: 关于公司及控股子公司担保额度预计的公告
-
外媒:苏纳克称正“全力以赴”解决北爱贸易问题 环球时快讯
-
夫妻婚前财产一方过世时如何处理
-
安徽合力: 安徽合力股份有限公司公开发行可转换公司债券发行结果公告
-
环球快报:OPPO Watch 3 Pro 冰川灰配色发布 腕间便捷体验再度革新
-
如果有人利用影响力受贿罪怎样处置呢?-世界简讯
-
煜邦电力: 2022年第三次临时股东大会决议公告
-
焦点要闻:在云南红河离婚孩子抚养权的问题
-
天天滚动:12月14日基金净值:工银成长精选混合A最新净值0.7343,跌0.88%
-
新野县汉华街道:深入企业开展“万人助万企”走访活动 助力“宜业兴业星” 世界速读
-
恒华科技:巴沃资产、和泰人寿保险等多家机构于12月12日调研我司
-
【天天新要闻】*ST光一(300356.SZ):被债权人申请重整
-
天天速读:狐臭的最佳治疗方法_西宁看狐臭
-
全球速递!李钟硕:漫画里走出来的美男子,可盐可甜可霸气可腹黑
-
环球时讯:天秦装备: 长江证券承销保荐有限公司关于秦皇岛天秦装备制造股份有限公司继续使用部分闲置募集资金及自有资金进行现金管理的核查意见
-
NASA登月飞船成功返回地球 美国完成重返月球第一步
-
环球讯息:科新机电(300092)12月9日主力资金净卖出333.67万元
-
益盛药业董秘回复:截止至2022年11月30日,公司股东总户数31,100户-每日热文
-
全球今日报丨永和股份(605020):完善氯化物配套 一体化优势巩固
-
广东省林草中药材产业发展指南发布 森林覆盖率位居全国前列
-
唇部彩妆的“质地变革” 是否是长久之计?
-
安庆:18个社区首批试点“三公里”就业圈
-
多次“点名”!阜阳这项产业“加速跑”
-
最新!2021年杭州市户籍人口期望寿命公布
-
周末开始合肥天气转晴 气温开始迅速上升
-
冬季敏感肌肤怎么保养 冬季敏感肌肤保养方法
-
最高气温30℃以上!未来三天西安市云量较多
-
陕西太白一金矿巷道涌入泥石流事故致4人死亡
-
福建莆田集中医学观察人员“清零”