协程这么好,它能完全代替线程么? 聚看点

来源: 时间:2022-12-22 12:59:05

好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。


(资料图片)

------

这个问题首先前提就有问题,谁说协程那么好的?任何技术肯定都有自己的适用场景,这种通用层面的技术则更是了。

协程本质上就是由用户代码主动在某个时间点出让 CPU,可以在任何一行出让,当然语言层或框架层的协程一般会在原本是阻塞函数的调用内部,让出 CPU 资源,不阻塞当前线程。

当然像 go 这种协程做的特别牛逼的,牛逼到它自己都不想承认自己是协程的语言,就另说了。

所以协程一般适用于 IO 密集型的高并发场景。

你要说就完全 CPU 密集型计算,那还不如开你 CPU 核数那么多线程呢,开了协程反而不能并行了,还多了协程间切换的损耗。

所以协程那么好,这句话就可以否了,同时也顺便拿出了一个场景,说明用协程替换线程是负优化的,自然协程也不能完全替换线程。

------

再有,刚刚是站在应用程序角度考虑,要分场景看是使用协程还是线程。再从操作系统层面考虑,协程就根本无法替代线程了。

你想,协程需要自己主动出让 CPU 资源,那要是操作系统使用协程来运行应用程序,那万一应用程序自己一直不出让 CPU,也不调用能产生阻塞操作进而间接出让 CPU 的代码,那不就坏事了。

再有,协程本身的优势在于切换成本小,本质是因为栈小,而且也不需要切换页表。

那要是操作系统真的拿协程来跑多应用程序,这些优势也就不复存在了,而且如果协程实现在了内核态,本身从用户态陷入内核态的切换也少不了。

所以本来协程有的优势,在这里全没了,还极大增加了不公平性。

------

最后,这俩事情本身就不好讨论替换这一说,因为他们本质都不一样。

协程说白了就是一段串行的指令流,只不过中间哪个地方往哪跳的逻辑,被封装在了 "协程" 这个概念里而已。

再者,协程本身也是要跑在线程中的,需要有载体,他们二者本身就是相辅相成的关系,何来替代呢,更别说完全替代了。

有时候,了解清楚一项技术的本质,就能更好看清这些问题的荒诞了。

今天阳了躺在床上实在无聊,就挑了个知乎上的问题回答了一下,看好多回答都没说在点子上,就码了这些字,感兴趣的同学可以点开阅读原文看看。

上一篇:

下一篇:

X 关闭

协程这么好,它能完全代替线程么? 聚看点

好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。------这个问题首先前提就有问题,谁说协程那么好的?任

2022-12-22

各地出台促进汽车消费政策 汽车产业快速复工复产

在此情形下,今年5月底,财政部、国家税务总局推出600亿元汽车购置税优惠“大礼包”之后,各地方政府纷纷积极响应,先后出台汽车消费政策,促

2022-12-22

今日播报!仁东控股董秘回复:根据《深圳证券交易所股票上市规则》等相关规定,目前公司暂未触及风险警示相关情形

仁东控股(002647)12月21日在投资者关系平台上答复了投资者关心的问题。

2022-12-21

独家资金:早盘主力进散户逃前10股

(原标题:独家资金:早盘主力进散户逃前10股)12月21日大单净量前十名个股如下:dde大单净量=dde大单净流入量 流通股本股票简称DDE大单净量DDE大单金

2022-12-21

业务流程建模,细到几层?

​在我做的BDF框架中,业务建模是非常重要的一个能力之一。因为有了建模能力,就可以提供面向于不同目标用户的可解释能力了。这种可解释能力可

2022-12-21

【券商聚焦】国泰君安首予巨子生物(02367)“增持”评级 目标价41.55港元

国泰君安发研报指,巨子生物卡位高成长重组胶原赛道,原料技术优势背书品牌、助力管线拓展,拓产品、扩渠道下有望持续高增。预计2022-2024年公

2022-12-20

退烧药紧缺有望元旦前缓解!超550个生产批文,原料药企“三班倒”

近期随着疫情防控政策的调整叠加冬季呼吸道疾病高发期的影响,解热镇痛类药物市场需求大增。A股布洛芬原料药龙头新华制药炙手可热,实现10天8

2022-12-20

H5开屏从龟速到闪电,企微是如何做到的

导读|H5开屏龟速常是令开发者头疼的问题。腾讯企业微信团队对该现象进行分析优化,最终H5开屏耗时130ms,达到秒开效果!企微前端开发工程师陈

2022-12-19

【天天聚看点】康希诺生物跌超16%,机构称新冠板块投资机会性价比下降

12月19日,港股康希诺生物(06185 HK)股价持续走弱,盘中一度跌超16%。港股抗疫板块午后跌幅扩大,三叶草生物跌近16%,君实生物跌近13%,山东新华制

2022-12-19

恒华科技:2022年12月16日收到《中标通知书》

2022年12月19日,恒华科技(300365 SZ)关于收到《中标通知书》的公告,公司于2022年12月16日收到招标人以及招标代理机构发来的《中标通知书》,

2022-12-19

Copyright ?  2015-2022 每日科技网版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com