BIO
同步阻塞,当线程开启一个IO操作的时候,必须要等待此IO操作完成才能继续往下执行。在BIO的网络通信模型中,由于服务端进程在与客户端连接中的IO操作是同步阻塞的(例如从连接中获取输入、输出流来读写数据),因此服务端会为每一个连接创建一个线程,导致在高并发的场景中,性能很差,即使用了线程池效果也不好。
NIO
同步非阻塞,相当于开启网络IO的线程采用轮询的方式去询问IO是否完成,而非阻塞等待。
AIO
异步非阻塞,开启子线程去执行IO操作,最后由子线程完成以后通知回调。
同步阻塞,当线程开启一个IO操作的时候,必须要等待此IO操作完成才能继续往下执行。在BIO的网络通信模型中,由于服务端进程在与客户端连接中的IO操作是同步阻塞的(例如从连接中获取输入、输出流来读写数据),因此服务端会为每一个连接创建一个线程,导致在高并发的场景中,性能很差,即使用了线程池效果也不好。
同步非阻塞,相当于开启网络IO的线程采用轮询的方式去询问IO是否完成,而非阻塞等待。
异步非阻塞,开启子线程去执行IO操作,最后由子线程完成以后通知回调。