ccmouse老师,我查了下select的case同时满足的情况下会随机选择一个执行
来源:11-4 用select进行调度

慕粉2143548772
2019-01-08
那么理论上有没有可能tick会把append数据的操作给干掉啊,这样不就造成数据会跳跃吗,我实际运行了一下,然而并不能,我把tick设成毫秒,发现并不影响数据的插入,还是按照顺序来的
写回答
1回答
-
ccmouse
2019-01-08
这么做的确没有问题。两个channel同时有数据,的确会随机选取一个,有可能选到tick,这次select操作就结束了。但是,c1里面的数据还在,不会丢。外层for循环会再次让我们运行下一次select,此时就会选择c1里的数据。
极端情况下,tick如果特别短(毫秒不短了),理论上会永远select不到c1。但实际上,由于select是随机的,所以也还是会select到032019-01-10
相似问题