概念
BIO:同步并阻塞,服务实现模式为一个连接对应一个线程,即客户端发送一个连接,服务端要有一个线程来处理。如果连接多了,线程数量不够,就只能等待,即会发生阻塞。
NIO:同步非阻塞,服务实现模式是一个线程可以处理多个连接,即客户端发送的连接都会注册到多路复用器上,然后进行轮询连接,有I/O请求就处理
AIO:异步非阻塞,引入了异步通道,采用的是proactor模式,特点是:有效的请求才启动线程,先有操作系统完成在通知服务端
简单理解阻塞、非阻塞、同步、异步
我们先来了解IO过程。
IO操作包含两个部分:
第一:IO请求
第二:实际IO读写操作
阻塞与非阻塞:主要表现在第一点发IO请求,就是调用方。阻塞就是发起IO请求之后要傻傻的等待,等待期间不能去做其他事情。反之就是非阻塞。
同步与异步:主要表现在第二点读写IO读写操作。同步与异步是说被调用方,如果操作系统帮你完成了再通知你,就是异步。反之叫同步。