协程这么好,它能完全代替线程么? 世界聚看点
好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。
------
(资料图片)
这个问题首先前提就有问题,谁说协程那么好的?任何技术肯定都有自己的适用场景,这种通用层面的技术则更是了。
协程本质上就是由用户代码主动在某个时间点出让 CPU,可以在任何一行出让,当然语言层或框架层的协程一般会在原本是阻塞函数的调用内部,让出 CPU 资源,不阻塞当前线程。
当然像 go 这种协程做的特别牛逼的,牛逼到它自己都不想承认自己是协程的语言,就另说了。
所以协程一般适用于 IO 密集型的高并发场景。
你要说就完全 CPU 密集型计算,那还不如开你 CPU 核数那么多线程呢,开了协程反而不能并行了,还多了协程间切换的损耗。
所以协程那么好,这句话就可以否了,同时也顺便拿出了一个场景,说明用协程替换线程是负优化的,自然协程也不能完全替换线程。
------
再有,刚刚是站在应用程序角度考虑,要分场景看是使用协程还是线程。再从操作系统层面考虑,协程就根本无法替代线程了。
你想,协程需要自己主动出让 CPU 资源,那要是操作系统使用协程来运行应用程序,那万一应用程序自己一直不出让 CPU,也不调用能产生阻塞操作进而间接出让 CPU 的代码,那不就坏事了。
再有,协程本身的优势在于切换成本小,本质是因为栈小,而且也不需要切换页表。
那要是操作系统真的拿协程来跑多应用程序,这些优势也就不复存在了,而且如果协程实现在了内核态,本身从用户态陷入内核态的切换也少不了。
所以本来协程有的优势,在这里全没了,还极大增加了不公平性。
------
最后,这俩事情本身就不好讨论替换这一说,因为他们本质都不一样。
协程说白了就是一段串行的指令流,只不过中间哪个地方往哪跳的逻辑,被封装在了 "协程" 这个概念里而已。
再者,协程本身也是要跑在线程中的,需要有载体,他们二者本身就是相辅相成的关系,何来替代呢,更别说完全替代了。
有时候,了解清楚一项技术的本质,就能更好看清这些问题的荒诞了。
今天阳了躺在床上实在无聊,就挑了个知乎上的问题回答了一下,看好多回答都没说在点子上,就码了这些字,感兴趣的同学可以点开阅读原文看看。
当前热讯:甬金股份1月11日盘中涨幅达5%
以下是甬金股份在北京时间1月11日11:22分盘口异动快照:1月11日,甬金股份盘中涨幅达5%,截至11点22分,报29 15元,成交5366 21万元,换手率1
2023-01-112023春节留义乌过年人员子女免费冬令营报名详情 每日速看
为有效缓解留义外来建设者子女假期“看护难”问题,让家长安心工作和生活,自2021年以来,义乌市教育系统连续第三年推出“暖义融融”免费冬令
2023-01-11呈現一場金融科技饕餮盛宴,第十六屆金博會在深開幕
昨日,以「科技數字綠色消費」為主題的第十六屆深圳國際金融博覽會在深圳開幕。近300家金融機構和企業攜1000多款金
2023-01-112023东莞刘庆元的艺术实践(时间+地点+门票)
此时我刻—刘庆元的艺术实践展览时间:2022年12月9日—2023年3月12日展览地点:东莞市二十一空间美术馆一楼1 2号展厅、三楼3 4号展厅展览门票:十一空
2023-01-11教室里三年级作文大全(推荐65篇) 世界热点
教室里三年级作文大全第一篇放学了,孩子们背着书包纷纷回家了。校园里静悄悄的。突然,从二(1)班的教室里传来了一阵喧闹声。桌子气愤地说:
2023-01-10世界快看点丨电视剧《虫图腾》与《盗墓笔记》的差距在哪里?
2023年的开年有不少优质好剧正在热播,网剧《浮图缘》,上星剧《去有风的地方》、《向风而行》、《纵有疾风起》都是热门话题。只是精品好剧始
2023-01-10四川江油:大力发展水果产业促进群众增收
为持续推进乡村振兴,建设宜居宜业和美乡村,江油市积极调整种植结构,因地制宜发展农旅产业,让“小草莓”和“红柑橘”成为致富增收的“大引
2023-01-10全球快讯:ppmoney网贷逾期9天多久会上征信系统
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
2023-01-10数字经济板块1月9日跌0.06%,中远海科领跌,主力资金净流出5.58亿元 世界快报
1月9日数字经济板块较上一交易日下跌0 06%,中远海科领跌。当日上证指数报收于3176 08,上涨0 58%。深证成指报收于11450 15,上涨0 72%。数字
2023-01-10精彩看点:小金鱼A网贷逾期1000会不会上征信
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
2023-01-10X 关闭
X 关闭