大家好,今天主要给大家分享一下,如何使用linux系统中的多路复用和信号驱动的功能实现。
第一:linux多路复用基本特点
当应用程序同时处理多路数据的输入或输出时,若采用非阻塞模式,将达不到预期的效果 如果采用非阻塞模式,对多个输入进行轮询可以实现,但CPU的消耗非常大 如果使用多进程/多线程,将产生进程与线程同步互斥的问题使得程序变得非常复杂 使用多路复用则是最佳的选择,他的基本思想是: 先把所有需要监听等待的文件描述符添加到一个集合中, 在规定的时间内等待集合中所有描述符数据的变化,如果超时则跳出或进入下一次等待 如果在规定时间内文件描述符的数据有发生变化则把其他没有数据变化的描述符剔除到集合之外等待进行 下一次的等待状态。
接口API: