多路复用I/O的优缺点

多路复用I/O的优缺点

    多路复用I/O技术由操作系统提供支持,并提供给各种高级语言进行使用。它针对阻塞式同步I/O和非阻塞式同步I/O而言有很多优势,最直接的效果就是它绕过了I/O在操作系统层面的accept()方法的阻塞问题。
    使用多路复用I/O技术后,应用程序就可以不用再单纯使用多线程技术来解决并发I/O处理的性能问题了(针对操作系统内核I/O管理模块和应用程序而言都是这样的)。在实际业务的处理中,应用程序进程还是需要引入(由线程池支持的)多线程技术的。
    同一个端口可以处理多种网络协议。例如:使用ServerSocketChannel类的服务器端口监听,既可以接收到TCP协议又可以接收到UDP协议内容。也就是说端口的数据接收规则只和Selector注册的需要关心的事件有关。
    操作系统级别的优化:多路复用I/O技术可以使操作系统级别在一个端口上能够同时接受多个客户端的I/O事件,同时具有阻塞式同步I/O和非阻塞式同步I/O的所有特点。Selector的一部分作用更相当于“轮询代理器”。
都是同步I/O模型:目前阻塞式I/O、非阻塞式I/O,甚至包括多路复用I/O,这些都是基于操作系统级别对“同步I/O”的实现。什么是“同步I/O”?即:只有上层(包括上层的某种代理机制)系统询问“我”是否有某个事发生了,否则“我”不会主动告诉上层系统事件发生了。

猜你喜欢

转载自blog.csdn.net/qq_22238629/article/details/77982061