BIO、NIO、AIO的区别

BIO 同步阻塞IO

服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。

适用于连接数目小,并发小。

NIO同步非阻塞IO

服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。用户进程也需要时不时的询问IO操作是否就绪,这就需要用户进行不停的去询问。

适用连接数目多且连接比较短(轻操作)的架构,比如聊天服务器。

 

AIO

异步非阻塞,用户进程只需要发起一个IO操作然后立即返回,等IO操作真正的完成以后,应用程序会得到操作完成的通知,此时用户进程只需要对数据进行处理就好了,不需要进行实际的IO读写操作,因为真正的IO读取或者写入操作已经由内核完成了。

适用于链接数目多且连接比较长(重操作)的架构,比如相册服务器。

posted @   yifanSJ  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示