结束的case会不会永远执行不到?

来源:11-4 用select进行调度

AllenW

2022-08-22

假设c1 c2不停的send数据,不去设置sleep时间,那理论上会不会永远select不到结束的case呢,即使已经过了10s。也就是说下方的case都执行不到了

写回答

1回答

ccmouse

2022-08-23

//img.mukewang.com/szimg/6304eb320981919713541036.jpg

应该是针对这段代码。select的关键是所有的case会随机选择,而不是按顺序。这里有一个tm,一旦它的时间到了,就会有可能被选中,即使c1,c2不断有数据, tm也有相同的被选中几率。但timeout这个case必须800ms没有数据才能被选中,因为每次select,都回去运算,取当前时间往后的800ms

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程