Netty-AIO编程

Netty-AIO编程

Tags: Netty

摘要

Netty-AIO编程 ,AIO就是异步IO

AIO简介

NIO2.0引入了异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。
NIO2.0的异步套接字通道是真正的异步非阻塞IO,它对应Unix网络编程中的事件驱动IO(AIO),它不需要通过多路复用器(Selector)对它注册的通道进行轮询操作即可实现异步读写,从而简化了NIO的编程模型。
为什么Netty采用多路复用技术(epoll)而没有用AIO呢?
官方解释:https://github.com/netty/netty/issues/2515

源码下载

同样用AIO实现时间服务器

https://coding.net/u/javacore/p/aio_programming/git

为什么Netty不用AIO而用NIO

According to the book the main reasons were:

  1. Not faster than NIO (epoll) on unix systems (which is true)
  2. There is no daragram suppport
  3. Unnecessary threading model (too much abstraction without usage)
    I agree that AIO will not easily replace NIO, but it is useful for windows developers nonetheless.

参考 https://github.com/netty/netty/issues/2515