`
zhhphappy
  • 浏览: 120096 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java nio 基础概念笔记

阅读更多

 

Channel:

ServerSocketChannel 创建服务器端Socket,监听某特定端口,接收客户端请求。

SocketChannel 用于描述在一个客户端连接,既可以是发起请求的客户端本身的连接,也可以在表示该请求在服务器端与之对应的SocketChannel连接对象。几乎所有的数据读写操作都在这个类中完成。可以有block和nonblock两种方式。

 

 

ByteBuffer:

ByteBuffer分为两种,一种为direct,一种为Nondirect. 使用direct buffer时JVM会分配一个连续的内存块,直接通过native access mothed进行读写操作。而nondirect buffer时,JVM通过数组访问的方式来访问其中数据。在Channel对Buffer进行操作时,最终只操作direct buffer。如果Channel接收到的是一个nondirect buffer,它会创建一个direct buffer,然后将nondirect buffer中的数据拷贝到这个direct buffer中,然后调用系统方法进行读写。


Selector:
Selector 用于管理Channel,通过select轮循注册在该Selector上的所有Channel,并负责dispatch事件。
Selector扮演了Reactor的角色。每个SelectableChannel向Selector注册感兴趣的事件,当事件发生时,Selector记录并跟踪这些事件。当应用程序调用Selector的select方法时,Selector轮循所有注册过的SelectableChannels,查看是否有它们感兴趣的事件发生。 一个SelectableChannel可以向不同的Selector中注册不同的事件。每种类型的SelectableChannel所能注册的事件也不一样。各Channel能注册的事件如下表:
ServerSocketChannel OP_ACCEPT
SocketChannel OP_CONNECT, OP_READ, OP_WRITE
DatagramChannel OP_READ, OP_WRITE
Pipe.SourceChannel OP_READ
Pipe.SinkChannel OP_WRITE

channel和selector的主要类结构图:


 


 

  • 大小: 7.4 KB
  • 大小: 10.2 KB
分享到:
评论

相关推荐

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

    Java NIO英文高清原版

    Java NIO英文高清原版

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java...Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。

    Java NIO核心概念总结篇

    这是学习Java NIO过程中总结的核心概念,里面包含了基本的知识点,详细知识点也可以查看我的博客:pcwl_java里的Java NIO篇

    java NIO 中文版

    讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...

    java nio 实现socket

    java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket

    java nio中文版

    java NIO是 java New IO 的简称,在 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下: – 为所有的原始类型提供 (Buffer) 缓存支持。 – 字符集编码解码解决方案。 – Channel :一个新的原始 I/O 抽象。 – 支持...

    Java Nio selector例程

    java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...

    Java语言基础教程-Java NIO流篇2

    Java语言基础教程-Java NIO流篇2Java语言基础教程-Java NIO流篇2

    java NIO.zip

    java NIO.zip

    java nio 读文件

    java nio 读文件,java nio 读文件

    java NIO技巧及原理

    java NIO技巧及原理解析,java IO原理,NIO框架分析,性能比较

    java基于NIO实现Reactor模型源码.zip

    java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...

    javaNIO学习笔记

    java NIO的基本知识点学习笔记,不包含具体代码

    JAVA NIO 学习资料

    JAVA NIO学习资料JAVA NIO学习资料

    基于Java NIO实现五子棋游戏.zip

    基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现...

    java NIO学习系列 笔记

    Contents: 1 核心概念以及基本读写 2 缓冲区的实现机制 3 连网与异步IO 4 分散和聚集IO 5 文件锁定

Global site tag (gtag.js) - Google Analytics