NIO同步非阻塞与AIO异步非阻塞IO

IO的两个重要步骤:发起IO请求,和实际的IO操作。

在unix网络编程的定义里异步和非异步概念的区别就是实际的IO操作是否阻塞。如果不阻塞就是异步,如果阻塞就是同步。

而阻塞和非阻塞的区别在于发起IO请求的时候是否会阻塞,如果会就是阻塞,不会就是非阻塞。

 

 

NIO:同步非阻塞IO

参考如下

同步需要主动去询问结果

http://weixiaolu.iteye.com/blog/1479656

http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html

 

AIO:异步非阻塞IO,使用了异步Future 

异步是在结果返回时,接收到通知

http://www.iteye.com/topic/1113611

 

 

AIO采用Future 模式或者注册CompletionHandler回调

 

FutureTask是Future的实现类

FutureTask futureTask = new FutureTask(new Callable(){public void call(){}});

ThreadPool.submit(futureTask );

......................

futureTask.get();//这个是阻塞的,可以启一个线程来获取

posted on 2017-07-28 11:43  摩羯的小石头  阅读(98)  评论(0编辑  收藏  举报