协程这么好,它能完全代替线程么?-全球动态
好多问题呀,开始回答或者提问前,其实可以看看问题本身是不是有问题,像黄执中一样。
【资料图】
------
这个问题首先前提就有问题,谁说协程那么好的?任何技术肯定都有自己的适用场景,这种通用层面的技术则更是了。
协程本质上就是由用户代码主动在某个时间点出让 CPU,可以在任何一行出让,当然语言层或框架层的协程一般会在原本是阻塞函数的调用内部,让出 CPU 资源,不阻塞当前线程。
当然像 go 这种协程做的特别牛逼的,牛逼到它自己都不想承认自己是协程的语言,就另说了。
所以协程一般适用于 IO 密集型的高并发场景。
你要说就完全 CPU 密集型计算,那还不如开你 CPU 核数那么多线程呢,开了协程反而不能并行了,还多了协程间切换的损耗。
所以协程那么好,这句话就可以否了,同时也顺便拿出了一个场景,说明用协程替换线程是负优化的,自然协程也不能完全替换线程。
------
再有,刚刚是站在应用程序角度考虑,要分场景看是使用协程还是线程。再从操作系统层面考虑,协程就根本无法替代线程了。
你想,协程需要自己主动出让 CPU 资源,那要是操作系统使用协程来运行应用程序,那万一应用程序自己一直不出让 CPU,也不调用能产生阻塞操作进而间接出让 CPU 的代码,那不就坏事了。
再有,协程本身的优势在于切换成本小,本质是因为栈小,而且也不需要切换页表。
那要是操作系统真的拿协程来跑多应用程序,这些优势也就不复存在了,而且如果协程实现在了内核态,本身从用户态陷入内核态的切换也少不了。
所以本来协程有的优势,在这里全没了,还极大增加了不公平性。
------
最后,这俩事情本身就不好讨论替换这一说,因为他们本质都不一样。
协程说白了就是一段串行的指令流,只不过中间哪个地方往哪跳的逻辑,被封装在了 "协程" 这个概念里而已。
再者,协程本身也是要跑在线程中的,需要有载体,他们二者本身就是相辅相成的关系,何来替代呢,更别说完全替代了。
有时候,了解清楚一项技术的本质,就能更好看清这些问题的荒诞了。
今天阳了躺在床上实在无聊,就挑了个知乎上的问题回答了一下,看好多回答都没说在点子上,就码了这些字,感兴趣的同学可以点开阅读原文看看。
-
协程这么好,它能完全代替线程么?-全球动态
2022-12-21
-
皓宸医疗(002622)12月21日主力资金净卖出1054.66万元
2022-12-21
-
天天热讯:机器人(300024)12月20日主力资金净买入1508.51万元
2022-12-21
-
犀牛宝逾期15天还不起征信会怎么样|世界信息
2022-12-20
-
5 年的前端成长计划 - 仅剩 300 名额 - 打破职业发展壁垒
2022-12-20
-
农发种业(600313)12月19日主力资金净卖出1.02亿元_视点
2022-12-20
-
当前速读:春风动力: 春风动力关于注销2021年股票期权激励计划部分股票期权的公告
2022-12-19
-
天天快消息!龙津药业:公司在研化学创新药“注射用ZKLJ02”已获得临床试验批件
2022-12-19
-
银行业服务实体经济量质双升|天天快消息
2022-12-19
-
注意!“阳了”别碰它,“阳康”消杀它|天天要闻
2022-12-18
-
协程这么好,它能完全代替线程么?-全球动态
2022-12-21
-
皓宸医疗(002622)12月21日主力资金净卖出1054.66万元
2022-12-21
-
天天热讯:机器人(300024)12月20日主力资金净买入1508.51万元
2022-12-21
-
犀牛宝逾期15天还不起征信会怎么样|世界信息
2022-12-20
-
5 年的前端成长计划 - 仅剩 300 名额 - 打破职业发展壁垒
2022-12-20
-
农发种业(600313)12月19日主力资金净卖出1.02亿元_视点
2022-12-20
-
当前速读:春风动力: 春风动力关于注销2021年股票期权激励计划部分股票期权的公告
2022-12-19
-
天天快消息!龙津药业:公司在研化学创新药“注射用ZKLJ02”已获得临床试验批件
2022-12-19
-
银行业服务实体经济量质双升|天天快消息
2022-12-19
-
注意!“阳了”别碰它,“阳康”消杀它|天天要闻
2022-12-18
-
安鑫花借款逾期五个月还不起征信会怎么样
2022-12-18
-
红土创新新兴产业混合基金经理变动:增聘廖星昊为基金经理|环球速看料
2022-12-17
-
[快讯]*ST吉艾:公司下属项目子公司涉及诉讼的补充公告
2022-12-16
-
头条:又一家连锁药店龙头迈入万店时代!益丰药房拟募资加大9省市门店布局
2022-12-16
-
马斯克将暂停跟踪其飞机的Twitter账户的行动与"疯狂跟踪者"联系起来-环球新动态
2022-12-16
-
农村扶贫贷款怎么样-时快讯
2022-12-15
-
B of A Securities:下调ArcelorMittal(MT.US)评级
2022-12-15
-
焦点信息:辽宁年内第二次发行中小银行专项债:65亿元注资3家城商行
2022-12-14
-
环球微速讯:营业执照网上年检还要去工商局吗
2022-12-14
-
天天滚动:礼来(LLY.US)重申2022年指引 2023年指引不及预期
2022-12-13
-
环球看热讯:暴雪中国:《魔兽世界》国服团队正与新伙伴洽谈 1月23日前封存游戏
2022-12-13
-
每日速递:31省份11月CPI出炉:25地重回“1时代”,有你家乡吗
2022-12-13
-
智通港股52周新高、新低统计|12月12日 天天即时看
2022-12-12
-
天天要闻:最亲民的RTX 40系显卡 比RTX 3060性能提升20% 三千多就能搞定
2022-12-12
-
海利生物: 海利生物关于控股子公司向控股股东借款展期的公告_环球时讯
2022-12-09
-
天天热点评!政策支持房地产平稳健康发展,金科近期利好频传
2022-12-07
-
银信科技:公司业务暂不涉及NFT、数字确权、数字脱敏领域
2022-12-06
-
规模预警频现 6月以来13只基金清盘超80只黯然离场
北京商报 2022-06-20