Java中网络IO的实现方式(BIO、NIO、AIO)介绍
在网络编程中,接触到最多的就是利用Socket进行网络通信开发。在Java中主要是以下三种实现方式BIO、NIO、AIO。首先我用一个较为通俗的语言来说明:BIO 就是阻塞IO,每个TCP连接进来服务端都需要创建一个线程来建立连接并进行消息的处理。对比与BIO来说,NIO使用一个线程来管理所有的Socket 通道,也就是基于Selector机制,当查询到事件时,就会转发给不同的处理线程。下面给出Reactor模型的工作应用图: AIO是JDK1.7提出的,也就是异步IO。AIO采用的是Proactor模式。我们首先应该辨析的是AIO和NIO的区别:NIO的通知是发生在Handler之前; AIO在进行读写操作时,只需要调用相应的read/write方法,并传入CompletionHandler,在动作完成后会调用CompletionHandler。
下载地址
用户评论