谈谈对AIO、BIO和NIO的理解

来源:互联网 发布:加拿大软件培训 编辑:程序博客网 时间:2024/06/06 09:04


首先简单理解

BIO,同步阻塞式IO,一个连接一个线程,这个线程只针对这个连接而存在,专注于它的收发,如果没有数据读入它就一直阻塞等待。当然可以通过线程池改善。

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

NIO,异步非阻塞式IO,一个有效请求一个线程,用户进程只需要发起一个IO操作然后立即返回,等IO操作真正的完成以后,应用程序会得到IO操作完成的通知,此时用户进程只需要对数据进行处理就好了,不需要进行实际的IO读写操作。


适用场景分析,稍后再更新

0 0
原创粉丝点击