NIO和BIO

古城微笑少年丶 2023-05-30 08:58 38阅读 0赞

BIO

同步阻塞式IO,服务器实现模式:为一个连接建立一个线程,即客户端有连接请求时,服务器端就需要启动一个线程进行处理,这个线程和这个连接就捆绑到了一起,线程就等着连接做事情;如果这个连接不做任何事情,会造成不必要的线程开销,当然可以通过线程池机制改善。

在这里插入图片描述

NIO

同步非阻塞式IO,服务器实现模式:为一个请求建立一个线程,即客户端发送的连接都会注册到多路复用器(Selector)上,并基于事件驱动模式,即当多路复用器论询到连接中有事件发生时,才启动一个线程进行处理;事件包括连接请求事件、读取数据事件、发送数据事件等。

在这里插入图片描述

同步非阻塞式IO关键采用了事件驱动的思想来实现一个多路转换器

NIO BIO区别
NIO和BIO最大的区别就是只需要开启一个线程就可以处理来自多个客户端的IO事件。

NIO原理
1.建立连接:若服务端监听到客户端的连接请求,便为其建立通信套接字(java中就是通道(Channel),然后返回继续监听,若同时有多个客户端连接请求到来也可以全部接收,依次为它们建立通信套接字
2.处理数据:若服务端监听到来自已经创建了通信套接字的客户端发来的数据,就会调用对应的接口处理接收到的数据,若同时有多个客户端发来数据也可以依次进行处理
3.同时监听:监听多个客户端的连接请求和接收数据请求的同时,还能监听自己有数据发送 。

发表评论

表情:
评论列表 (有 0 条评论,38人围观)

还没有评论,来说两句吧...

相关阅读

    相关 BIONIOAIO

    BIO(Blocking I/O)同步阻塞I/O 这是最基本与简单的I/O操作方式,其根本特性是做完一件事再去做另一件事,一件事一定要等前一件事做完,这很符合程序员传统的顺

    相关 NIOBIO

      BIO 同步阻塞式IO,服务器实现模式:为一个连接建立一个线程,即客户端有连接请求时,服务器端就需要启动一个线程进行处理,这个线程和这个连接就捆绑到了一起,线程就等

    相关 BIONIOAIO

    IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO      在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要

    相关 聊聊BIONIOAIO

    ![1240][] 本文从操作系统的角度来解释BIO,NIO,AIO的概念,含义和背后的那些事。本文主要分为3篇。 第一篇:讲解BIO和NIO以及IO多路复用 https: