0
点赞
收藏
分享

微信扫一扫

Java网络编程IO模型 --- BIO、NIO、AIO详解

whiteMu 2022-02-15 阅读 82

文章目录

一、I/O模型

1.1 I/O模型基本说明

1.2 Java支持的3种网络编程I/O模式

1.3 JavaBIO(同步阻塞)

JavaBIO:传统的阻塞模式

下图为BIO简单执行流程

在这里插入图片描述

传统的阻塞式

BIO的缺点是客户端一直在连接服务器,服务器会为每一个客户端开辟一个线程对客户端处理,但有时客户端不是一直对服务器进行IO操作的,所以这样会导致服务器阻塞,进而对服务器产生很多不必要的线程开销,资源浪费

1.4 JavaNIO (同步非阻塞)

JavaNIO:同步非阻塞

下图为NIO简单执行流程

在这里插入图片描述

NIO的优点

当然,如果客户端数量增大,服务器就要再开一个Thread连接Selector进行轮询分配,以此类推,这样就充分的减少内存消耗

1.5 JavaAIO(异步非阻塞)

JavaAIO:异步非阻塞

AIO目前并没有得到广泛的应用

AIO和操作系统有非常密切的关系

我们就不再进行画图讲解了,AIO了解即可

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

2.1 BIO应用场景

2.2 NIO应用场景

2.3 AIO应用场景

往期精彩热文回顾

⛲小结

以上就是【Bug 终结者】对Java网络编程IO模型简单的理解,小编认为Java中支持三种网络编程IO模型,BIO、NIO、AIONetty对NIO又做了一层封装,要学Netty,那就得先把网络编程模型搞懂,相信到这里,你已经对BIO、NIO、AIO有了一个大致的理解,通过本文能加固你对BIO、NIO、AIO的理解

举报

相关推荐

0 条评论