同步阻塞IO(BIO)

同步非阻塞IO(NIO)

异步IO(AIO)

BIO(同步阻塞IO)

Ep_Linux面试题-Java的三种IO_java

     连接一个客户端就需要启动一个线程进行处理,如果连接未断开且未做任何事,会造成不必要的开销。可以通过线程池优化。

同步非阻塞IO(NIO)

 

Ep_Linux面试题-Java的三种IO_Java_02

    NIO是可以做到用一个线程来处理多个操作。一个线程从某通道读取数据,如果目前没有数据可用,该线程可以继续做其他的事情。如果有事件发生,Selector(选择器)获取对应通道的对应事件,进行处理

异步IO(AIO)

 

Ep_Linux面试题-Java的三种IO_面试_03

    进行读写操作时,只须直接调用api的read或write方法即可。 客户端的IO请求都是操作系统先完成了再通知服务器应用去启动线程进行处理。