NIO专栏学习】的更多相关文章

http://blog.csdn.net/column/details/12993.html…
NIO模型学习笔记 简介 Non-blocking I/O 或New I/O 自JDK1.4开始使用 应用场景:高并发网络服务器支持 概念理解 模型:对事物共性的抽象 编程模型:对编程共性的抽象 BIO网络模型 阻塞IO BIO连接过程 1.监听建立连接请求 2.发起建立连接请求 3.服务端启动新线程 4.线程响应客户端 5.等待客户端再次请求 BIO网络模型缺点 阻塞式IO模型 弹性伸缩能力差 多线程耗资源 NIO网络模型 特点 非阻塞IO 弹性伸缩能力强 单线程节省资源 模型图 核心类 Ch…
相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录 . NIO.NIO.2简介 . NIO中的关键技术 1. NIO.NIO.2简介 Java中的输入流.输出流都是阻塞式的输入.输出.不仅如此,传统的输入流.输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向流的…
参考 http://wenku.baidu.com/link?url=rq-BEp3Et4JRrE62f2Lv9hq8nT_Gq0XPb65h8OBqTAt-ILfqKmdjIhVEp8bctIdm0uqWJG6P_U0-B8gYSjSEUGgmEwmiQIKobcGxvBM3YsG nio是非阻塞io,nio 可以理解为new io,也可以理解为net+io,所以,我们探讨一下非阻塞io的过程. 1.channel是通道,是对原来的流的模拟,可以实现同时读写,双向性.而流呢,我们知道input…
本篇博客依照 Java NIO Tutorial翻译,算是学习 Java NIO 的一个读书笔记.建议大家可以去阅读原文,相信你肯定会受益良多. 1. Java NIO Tutorial Java NIO,被称为新 IO(New IO),是 Java 1.4 引入的,用来替代 IO API的. Java NIO:Channels and Buffers 标准的 Java IO API ,你操作的对象是字节流(byte stream)或者字符流(character stream),而 NIO,你操…
背景知识 同步.异步.阻塞.非阻塞 首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下[1]. 同步:API调用返回时调用者就知道操作的结果如何了(实际读取/写入了多少字节). 异步:相对于同步,API调用返回时调用者不知道操作的结果,后面才会回调通知结果. 阻塞:当无数据可读,或者不能写入所有数据时,挂起当前线程等待. 非阻塞:读取时,可以读多少数据就读多少然后返回,写入时,可以写入多少数据就写入多少然后返回. 对于I/O操作,根据Oracle官网的文档,同步异步的划分标准是"调…
NIO是对I/O处理的进一步抽象,包含了I/O的基础概念.我是基于网上博友的博客和Ron Hitchens写的<JAVA NIO>来学习的. NIO的三大核心内容:缓冲区,通道,选择器. 一,buffer缓冲区 1,家谱 除了以上的基础类型对应的buffer之外,还有一种MappedByteBuffer,是ByteBuffer的子类, 专门用于内存映射文件的一种特例. 2,buffer 缓冲区基础 概念上,缓冲区是包在一个对象内的基本数据元素数组. 2.1,属性 容量( capacity) 缓…
Buffer其实就是是一个容器对象,它包含一些要写入或者刚读出的数据.在NIO中加入Buffer对象,体现了新库与原I/O的一个重要区别.在面向流的I/O中,您将数据直接写入或者将数据直接读到Stream对象中. 在NIO库中,所有数据都是用缓冲区处理的.在读取数据时,它是直接读到缓冲区中的.在写入数据时,它是写入到缓冲区中的.任何时候访问NIO中的数据,您都是将它放到缓冲区中. 缓冲区实质上是一个数组.通常它是一个字节数组,但是也可以使用其他种类的数组.但是一个缓冲区不仅仅是一个数组.缓冲区提…
上文已经说了FileChannel是一个抽象类,FileChannelImpl是其实现,接下来介绍FileChannelImpl,参考代码来自OpenJDK7 首先 public class FileChannelImpl extends FileChannel 该类的成员有: // Memory allocation size for mapping buffers private static final long allocationGranularity; // Used to make…
java NIO 中FileChannel 的实现类是  FileChannelImpl,FileChannel本身是一个抽象类. 先介绍FileChannel File Channels 是线程安全的.Channel的close方法可以随时执行(正如Channel接口所要求的).任何企图修改filechannel 对应文件大小 或者修改 filechannel position的操作都必须串行执行,第二个操作会一直阻塞直到前一个运行完.不过这些方法,具体还要看如何实现.(下文分析FileCha…