BIO、NIO、AIO的区别

BIO 同步阻塞IO

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

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

NIO同步非阻塞IO

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

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

 

AIO

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

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

posted @ 2022-05-31 23:16  yifanSJ  阅读(91)  评论(0编辑  收藏  举报