【网络IO】(二)多路复用器——内核级介绍

前言

在这个系列的上一篇文章中,我们介绍过网络IO中的两种IO模型——BIO与NIO,但这两种模型各有缺陷。

BIO将系统资源浪费在了线程调度上,而NIO将系统资源浪费在了用户态与内核态的切换上。

为了解决上面这两种IO模型的缺点,又提出了多路复用器的概念。

多路复用器,根据工作模式的不同,分为select/poll和epoll。

多路复用器的原理

要聊多路复用器,首先要明白“路”是指什么。

我们先来看一张图:

在这里插入图片描述

这张图左边是NIO的工作模式,右边是多路复用器的工作模式。

而其中的“路”就是IO通道,是这个用户程序需要监听的所有socket。

无论是NIO还是多路复用器,都需要知道在监听的所有socket中,有状态更新的是哪些,从而对这些socket进行处理。

而NIO与多路复用器的区别在于如何知道那些有状态更新的sockets。

与NIO的对比

在上一篇文章中我们知道,用户程序是通过fd


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部