selector如何处理多个事件

来源:5-6 数据发送与接收并行-3

慕码人3191957

2020-11-09

老师,我想请问一下,selector处理多个事件的话,例如select==0返回时,那代表有事件进入,但如果同时有多个的话,是排队处理吗?还有就是,例如有A事件就绪,select返回,select还没再次阻塞的时候,在这瞬间又有B事件触发,那请问会出现错误或者不符合预期的情况吗?

写回答

1回答

Qiujuer

2020-11-10

不会,select==0代表没有事件就绪,仅仅只是中断本次等待,返回了而已。

另外你担心的错乱问题不存在,A事件就绪,此时去处理A事件,B此时就绪了,但是并不影响,不会丢失B的就绪,需要等待下一次select()操作时,自然会得到B的就绪状态。

0
1
慕码人3191957
非常感谢!
2020-11-10
共1条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程