好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。
------
这个问题首先前提就有问题,谁说协程那么好的?任何技术肯定都有自己的适用场景,这种通用层面的技术则更是了。
(资料图片仅供参考)
协程本质上就是由用户代码主动在某个时间点出让 CPU,可以在任何一行出让,当然语言层或框架层的协程一般会在原本是阻塞函数的调用内部,让出 CPU 资源,不阻塞当前线程。
当然像 go 这种协程做的特别牛逼的,牛逼到它自己都不想承认自己是协程的语言,就另说了。
所以协程一般适用于 IO 密集型的高并发场景。
你要说就完全 CPU 密集型计算,那还不如开你 CPU 核数那么多线程呢,开了协程反而不能并行了,还多了协程间切换的损耗。
所以协程那么好,这句话就可以否了,同时也顺便拿出了一个场景,说明用协程替换线程是负优化的,自然协程也不能完全替换线程。
------
再有,刚刚是站在应用程序角度考虑,要分场景看是使用协程还是线程。再从操作系统层面考虑,协程就根本无法替代线程了。
你想,协程需要自己主动出让 CPU 资源,那要是操作系统使用协程来运行应用程序,那万一应用程序自己一直不出让 CPU,也不调用能产生阻塞操作进而间接出让 CPU 的代码,那不就坏事了。
再有,协程本身的优势在于切换成本小,本质是因为栈小,而且也不需要切换页表。
那要是操作系统真的拿协程来跑多应用程序,这些优势也就不复存在了,而且如果协程实现在了内核态,本身从用户态陷入内核态的切换也少不了。
所以本来协程有的优势,在这里全没了,还极大增加了不公平性。
------
最后,这俩事情本身就不好讨论替换这一说,因为他们本质都不一样。
协程说白了就是一段串行的指令流,只不过中间哪个地方往哪跳的逻辑,被封装在了 "协程" 这个概念里而已。
再者,协程本身也是要跑在线程中的,需要有载体,他们二者本身就是相辅相成的关系,何来替代呢,更别说完全替代了。
有时候,了解清楚一项技术的本质,就能更好看清这些问题的荒诞了。
今天阳了躺在床上实在无聊,就挑了个知乎上的问题回答了一下,看好多回答都没说在点子上,就码了这些字,感兴趣的同学可以点开阅读原文看看。
为进一步推进诉源治理,凝聚力量预防化解基层社会矛盾纠纷,10月27日,西峡法院在丁河镇召开“无讼村”创建工作座谈会,丁河镇分管领导、重点
同花顺(300033)金融研究中心12月14日讯,有投资者向贵州三力(603439)提问,贵州宏宇药业有限公司生产的金喉健喷雾剂是否侵权公司公司回答
证券代码:688039 证券简称:当虹科技 公告编号:2022-050 杭州当虹科技股份有限
人们会把锦鲤当作一个好运的代名词,好像这个东西不仅能够给我们很多心理上的安慰,还会给我们的实际生活带来好运。所以天降好运的时候,我们
1、产生罚息这是金钱上的损失。如果信用贷款出现逾期,贷款机构会先电话催收贷款,提醒借款人还款,同时利率还会上浮,作为每天的罚息。虽然每
证券代码:600835(A) 900925(B) 股票简称:上海机电 机电 B 股 编号:临 2022-027 上海机电股份有限公
包含30%,除非你把第一套的欠款还清。住房公积金只允许贷款买房。今年7月1日从40万调整到60万。如果首套房房贷没还清,向银行申请贷款买房,曾
截至2022年12月9日收盘,*ST山航B(200152)报收于5 56元,上涨2 77%,换手率0 24%,成交量0 33万手,成交额181 57万元。12月
从技术上来看,美指周三上涨在105 85之下遇阻,下跌在104 85之上受到支持,意味着美元上涨后有可能保持下跌的走势。如果美指今天上涨在105 65
芝加哥12月6日消息周二芝加哥期货交易所(CBOT)糙米期货收盘下跌,其中基准期约收低1 1%,追随邻池小麦市场的跌势。截至收盘,糙米期货下跌3
X 关闭
郑州昨天新增确诊病例11例,累计报告确诊病例103例
郑州:各核酸检测采样点开辟学生绿色通道
为何持续多轮做核酸检测 河南疾控专家解释
驻马店:关于依法严厉打击涉疫情网络谣言等违法信息的通告
郑州本轮累计报告103例本土确诊病例 均为普通型或轻型
郑州第五轮9区全员核酸检测已检724.9万人,已确诊5例
X 关闭