AIO入门实例
摘要:阅读《Netty权威指南》笔记
AIO概念:
AIO即JDK7开始引入的NIO,提供了异步文件通道和异步到街子通道的实现。异步通道提供两种方式操作结果:
- 通过java.util.concurrent.Future类来表示异步操作的结果;
- 在执行异步操作时传入一个java.nio.channels.CompletionHandler接口的实现类作为操作完成的回调(本例子主要使用这个方法)。
AIO创建的TimeServer
public class TimeServer {
public static void main(String[] args) {
int port = 8080;
if (args != null && args.length > 0) {
try {
port = Integer.valueOf(args[0]);
} catch (NumberFormatException e) {
}
}
AsyncTimeServerHander timeServerHander = new AsyncTimeServerHander(port);
new Thread(timeServerHander, "AIO-AsyncTimeServerHandler-001").start();
}
}
很简单,就是初始化一个线程,接下来看AsyncTimeServerHander 的实现代码:
public class AsyncTimeServerHander implements Runnable {
private int port;
CountDownLatch latch;
AsynchronousServerSocketChannel asynchronousServerSocketChannel;
/**
* 构造方法,创建一个异步的服务端通道AsynchronousServerSocketChannel,调用它的bind方法绑定监