没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Java NIO 与 IO 的区别和比较
导读
J2SE1.4 以上版本中发布了全新的 I/O 类库。本文将通过一些实例来简单介绍 NIO 库提供的一些新特性:
非阻塞 I/O,字符转换,缓冲以及通道。
一. 介绍 NIO
NIO 包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的 I/O 类中的一些问题。
1. Buffer:它是包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的 I/O
操作。
2. Charset:它提供 Unicode 字符串影射到字节序列以及逆影射的操作。
3. Channels:包含 socket,file 和 pipe 三种管道,它实际上是双向交流的通道。
4. Selector:它将多元异步 I/O 操作集中到一个或多个线程中(它可以被看成是 Unix 中 select()函数
或 Win32 中 WaitForSingleEvent()函数的面向对象版本)。
二. 回顾传统
在介绍 NIO 之前,有必要了解传统的 I/O 操作的方式。以网络应用为例,传统方式需要监听一个
ServerSocket,接受请求的连接为其提供服务(服务通常包括了处理请求并发送响应)图一是服务器的生
命周期图,其中标有粗黑线条的部分表明会发生 I/O 阻塞。
图一
可以分析创建服务器的每个具体步骤。首先创建 ServerSocket
ServerSocket server=new ServerSocket(10000);
然后接受新的连接请求
Socket newConnection=server.accept();
资源评论
小小哭包
- 粉丝: 1899
- 资源: 3854
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功