信号驱动IO是与内核建立SIGIO的信号处理函数并设置回调,当内核有FD就绪时,内核会发出SIGIO信号通知用户进程,在这期间用户应用进程可以执行其他业务,无需阻塞等待。
这个信号驱动IO多好啊,直接替代IO多路复用不好吗?其实信号驱动IO虽然是非阻塞的,但是还有以下缺点:
-
当有大量的IO操作时,信号很多,SIGIO处理函数可能不能及时的处理导致队列溢出。
-
内核空间要将递交信号拷贝到用户空间,频繁的信号交互性能也会比较低。
信号驱动IO是与内核建立SIGIO的信号处理函数并设置回调,当内核有FD就绪时,内核会发出SIGIO信号通知用户进程,在这期间用户应用进程可以执行其他业务,无需阻塞等待。
这个信号驱动IO多好啊,直接替代IO多路复用不好吗?其实信号驱动IO虽然是非阻塞的,但是还有以下缺点:
当有大量的IO操作时,信号很多,SIGIO处理函数可能不能及时的处理导致队列溢出。
内核空间要将递交信号拷贝到用户空间,频繁的信号交互性能也会比较低。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/232907.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!