查看“关于:Java网络IO编程(BIO、NIO、AIO)”的源代码
←
关于:Java网络IO编程(BIO、NIO、AIO)
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Java]] == 关于 == 本文主要讨论 Java 实现 network IO 的三种实现:BIO、NIO、AIO。 === 什么是 BIO、NIO、AIO? === * 见:“'''[[关于:5种I/O模型]]'''” # BIO:“blocking IO”,阻塞IO; # NIO:“non-blocking IO”,非阻塞IO; # AIO:“asynchronous IO”,异步IO; === Java 的 NIO API === * 见:“'''[[关于NIO]]'''”(概念、组件、用法) 需要注意的是: * Java NIO 是“'''Java New IO API'''”,而非“Non-Blocking IO”。二者不是一个概念。 ** Java NIO 支持'''面向缓冲区的、基于通道的IO'''操作,以更加高效的方式进行文件的读写操作。 * 其 NIO API 既可以实现“Non-Blocking IO”(NIO)和“Asynchronous IO”(AIO),也可以实现“Blocking IO”(BIO)。 == BIO(blocking IO) == <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> == NIO(non-blocking IO) == <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> == AIO(asynchronous IO) == <pre> AIO 是 Java 1.7 之后引入的包,是 NIO 的升级版本,新增了提异步非阻塞的 IO 操作方式,所以人们叫它 AIO(Asynchronous IO),异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会执行回调通知相应的线程进行后续的操作。 </pre> 在Java 7中增加了asynchronous IO,具体结构和实现类框架如下: : [[File:Java NIO:AsynchronousChannel类结构.png|400px]] <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight> <syntaxhighlight lang="java" highlight=""> </syntaxhighlight>
返回至“
关于:Java网络IO编程(BIO、NIO、AIO)
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息