请稍等 ...
×

采纳答案成功!

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

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下载
官方微信