请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

for range是同步调用,阻塞的。 而select是非阻塞,异步的轮询

同步调用会阻塞,为什么会引起效率低于select异步轮询?为什么会引起定时器有延迟?

正在回答 回答被采纳积分+3

插入代码

1回答

小鱼儿老师 2018-10-16 18:26:52

如果只有1个协程,那么这个问题可以这么分析:


1)for和select都是独占协程的执行权,但区别在于for只能等待1种资源,而select可以同时等待多种资源。

2)如果只需要等待1种资源,那么for可能要比select更实时,因为select可能有部分CPU时间在处理其他资源的逻辑,导致其他已经到来的资源被延迟处理。


重要的是看你是否能满足性能要求和扩展性要求,在这个前提下,用代码最简洁的那种实现就好了。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号