BIO、NIO、AIO
时间: 2023-10-20 09:08:39 浏览: 115
01-VIP-BIO,NIO,AIO精讲1
BIO、NIO、AIO是三种不同的I/O模型。
BIO(Blocking I/O)是同步阻塞式I/O模型,当进行I/O操作时,当前线程会被阻塞,直到数据准备好或者完成I/O操作。BIO的劳动力比较低下,需要一个线程来处理一个连接。
NIO(Non-blocking I/O)是同步非阻塞式I/O模型,当进行I/O操作时,不会阻塞当前线程,而是立即返回,通过Selector可以监听多个连接的事件。NIO相对于BIO省力,一个线程可以处理多个连接。
AIO(Asynchronous I/O)是异步非阻塞式I/O模型,AIO通过操作系统提供的异步通道来实现I/O操作,当进行I/O操作时,不会阻塞当前线程,同时也不需要通过Selector来监听事件。AIO是最聪明省力的模型,一个线程可以处理多个连接。
在目前来说,AIO的应用还不是很广泛,而NIO则是相对较常用的模型。Netty是一个基于NIO的框架,它的出现很大程度上改善了JDK原生NIO所存在的一些问题。
阅读全文