Java基础之《netty(2)—IO模型、BIO介绍、NIO介绍》
创始人
2024-01-29 14:40:47
0

一、IO模型

1、I/O模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。

2、Java共支持3种网络编程模型I/O模式:BIO、NIO、AIO。

3、Java BIO:同步并阻塞(传统阻塞型)
原生Java IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。

4、Java NIO:同步非阻塞
服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理。

5、Java AIO(NIO.2):异步非阻塞
AIO引入异步通道的概念,采用了Proactor模式,简化了程序编写,有效的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较多且连接时间较长的应用。

二、BIO、NIO、AIO使用场景分析

1、BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序简单易理解。

2、NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,弹幕系统,服务器间通讯等。编程比较复杂,JDK1.4开始支持。

3、AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。

三、BIO基本介绍

1、Java BIO(blocking I/O)就是传统的java io编程,其相关的类和接口在java.io包中

四、BIO编程

1、BIO编程简单流程
(1)服务器端启动一个Server Socket。
(2)客户端启动Socket对服务器进行通信,默认情况下服务器端需要对每个客户,建立一个线程与其通信。
(3)客户端发出请求后,先咨询服务器是否有线程响应,如果没有则会等待,或者被拒绝。
(4)如果有响应,客户端线程会等待请求结束后,才继续执行。

2、BIO应用实例
(1)使用BIO模型编写一个服务器端,监听6666端口,当有客户端连接时,就启动一个线程与之通讯。
(2)要求使用线程池机制改善,可以连接多个客户端。
(3)服务器端可以接收客户端发送的数据(telnet方式即可)。

相关内容

热门资讯

加盟小本创业开店项目 加盟小本... 上海科镭的答复:1.摊贩型对于摊贩我们绝对不会陌生,这种方式出现在人群聚集的地方,如夜市、风景区、车...
2020小本创业好项目有哪些?... 很多人都会选择从小的项目开始做起来,这样就可以很好的降低我们这方面的风险所在,那么小本创业好项目有哪...
50万元小本创业加盟好项目 5... 为什么穷人多不敢去创业蛋糕创业蛋糕店创业30岁女人创业做什么适合女性创业的大学生适合什么创业毕业生如...
2019最赚钱的小本创业现在小... 一个项目好不好做,首先就是看市场,互联网上的项目多如牛毛,关键是你得有高手的思维,看到任何项目都能快...
最适合新手小本创业的小本创业项... 1零食小屋随着人们生活水平的不断提高,包装精美、口味独特的健康零食,将越来越受到人们的青睐。加之春节...
普通穷人创业小本项目 普通穷人...  最新适合穷人创业的小本项目:小商品代理首先你要做的就是寻找一个合适的品牌,但不要找名牌,你搞不起的...
“丹娜丝”的路径有点怪!台风为... 今年第4号台风“丹娜丝”预计将于今天傍晚到夜间在浙江台州至福建宁德一带沿海登陆。受台风影响,浙江和福...
几个适合穷人的创业好项目 成本... 随着生活压力越来越大,现在有很多人加入了创业的队伍中,创业找项目也不是非常的好找,起点不一样选择也就...
适合穷人创业的小本项目! 适合... 穷人创业项目选择哪个行业好呢?穷人创业项目,需要接受检验,也需要谨慎而行。现在小编就为您推荐多个适合...
适合穷人的小本创业项目 适合穷... 穷人不敢创业是为什么呢?因为害怕失去,害怕自己辛辛苦苦积攒下来的血汗钱赔个精光。如今生活中穷人的日子...