协程这么好,它能完全代替线程么? 世界聚看点
好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。
------
(资料图片)
这个问题首先前提就有问题,谁说协程那么好的?任何技术肯定都有自己的适用场景,这种通用层面的技术则更是了。
协程本质上就是由用户代码主动在某个时间点出让 CPU,可以在任何一行出让,当然语言层或框架层的协程一般会在原本是阻塞函数的调用内部,让出 CPU 资源,不阻塞当前线程。
当然像 go 这种协程做的特别牛逼的,牛逼到它自己都不想承认自己是协程的语言,就另说了。
所以协程一般适用于 IO 密集型的高并发场景。
你要说就完全 CPU 密集型计算,那还不如开你 CPU 核数那么多线程呢,开了协程反而不能并行了,还多了协程间切换的损耗。
所以协程那么好,这句话就可以否了,同时也顺便拿出了一个场景,说明用协程替换线程是负优化的,自然协程也不能完全替换线程。
------
再有,刚刚是站在应用程序角度考虑,要分场景看是使用协程还是线程。再从操作系统层面考虑,协程就根本无法替代线程了。
你想,协程需要自己主动出让 CPU 资源,那要是操作系统使用协程来运行应用程序,那万一应用程序自己一直不出让 CPU,也不调用能产生阻塞操作进而间接出让 CPU 的代码,那不就坏事了。
再有,协程本身的优势在于切换成本小,本质是因为栈小,而且也不需要切换页表。
那要是操作系统真的拿协程来跑多应用程序,这些优势也就不复存在了,而且如果协程实现在了内核态,本身从用户态陷入内核态的切换也少不了。
所以本来协程有的优势,在这里全没了,还极大增加了不公平性。
------
最后,这俩事情本身就不好讨论替换这一说,因为他们本质都不一样。
协程说白了就是一段串行的指令流,只不过中间哪个地方往哪跳的逻辑,被封装在了 "协程" 这个概念里而已。
再者,协程本身也是要跑在线程中的,需要有载体,他们二者本身就是相辅相成的关系,何来替代呢,更别说完全替代了。
有时候,了解清楚一项技术的本质,就能更好看清这些问题的荒诞了。
今天阳了躺在床上实在无聊,就挑了个知乎上的问题回答了一下,看好多回答都没说在点子上,就码了这些字,感兴趣的同学可以点开阅读原文看看。
协程这么好,它能完全代替线程么? 世界聚看点
好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。------这个问题首先前提就有问题,谁说协程那么好的?任
2022-12-18粉丝喊话殷世航参加《青春有你》,殷世航回应:我很“油腻”,为什么没我
最近一段时间,知名网红殷世航的话题可谓是非常之多,一直都是网友们热议的对象。被网友们尊称为“1米5霸道总裁”的殷世航,颜值其实还是非常
2022-12-18工伤赔偿需要多长时间时间
按照工伤赔偿的法定程序:1、工伤认定:从单位或个人申请之日算起,劳动部门15日内审核材料,60日内作出工伤认定,20日内送达,按规定期限的上
2022-12-17观察:10月31日福建省新型冠状病毒肺炎疫情情况
10月31日0~24时,福建省报告新增本土确诊病例82例(福州市82例,其中无症状感染者转确诊68例)。
2022-12-16康普顿董秘回复:经公司了解,公司股东近期减持原因为个人资金需要,公司一直以厚道,热爱,创新_世界实时
康普顿(603798)12月16日在投资者关系平台上答复了投资者关心的问题。投资者:董秘你好:据查阅公司近一年大宗交易将近1万起!最近一起12月13日
2022-12-16苹果广东直营店(苹果教育优惠实体店)
不,价值越高,产品越优惠。肯定选择官网;又不是找实体店砍价。但是苹果不是唯一的渠道。是的,你可以。当你在Air2的时候,所有人都在零售店
2022-12-16借去花逾期7个月还不起会上征信系统吗 世界速看料
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
2022-12-15澄迈:道德讲堂进校园 引领道德新风尚
为深入推进未成年人思想道德教育,12月12日上午,由海南省澄迈县委宣传部、县教育局、县文明办、团县委联合主办的道德讲堂走进县实验小学。本
2022-12-15结婚没有到一年离婚彩礼该怎么退 要闻速递
解决离婚时彩礼怎么返还的问题,首先需哟按照前文确定一方给予另一方的财物是否属于彩礼。属于赠与的,无权要求退还;属于彩礼钱的,符合法律
2022-12-15方大炭素最新公告:子公司成都炭材新三板申请挂牌获受理
方大炭素公告,子公司成都炭材在全国中小企业股份转让系统申请挂牌获得受理。截至2022年12月14日收盘,方大炭素(600516)(600516)报收于6 36元
2022-12-14X 关闭
X 关闭