selector如何处理多个事件
来源:5-6 数据发送与接收并行-3
慕码人3191957
2020-11-09
老师,我想请问一下,selector处理多个事件的话,例如select==0返回时,那代表有事件进入,但如果同时有多个的话,是排队处理吗?还有就是,例如有A事件就绪,select返回,select还没再次阻塞的时候,在这瞬间又有B事件触发,那请问会出现错误或者不符合预期的情况吗?
写回答
1回答
-
不会,select==0代表没有事件就绪,仅仅只是中断本次等待,返回了而已。
另外你担心的错乱问题不存在,A事件就绪,此时去处理A事件,B此时就绪了,但是并不影响,不会丢失B的就绪,需要等待下一次select()操作时,自然会得到B的就绪状态。
012020-11-10
相似问题