美文网首页
JAVA NIO 主要概念介绍

JAVA NIO 主要概念介绍

作者: ShootHzj | 来源:发表于2017-08-18 20:20 被阅读30次

    1.Buffers(缓冲区)
    Buffer类是常规JAVA类和channels(管道)之间的通道。Buffer包含固定长度的数组中,数组中存放着原始数据,封装在一个包含状态的对象中。管道可以消耗缓冲区的数据,也可以向缓冲区中存入数据。此外,还有一种特殊类型的缓冲区,用于内存映射文件。

    2.Channels(通道)
    NIO中引入的最抽象的概念就是Channel。通道对象代表着通信连接。通信连接可以是单向的,也可以是双向的。可以理解成缓冲区和IO设备之间的道路。

    一些java.io中的旧类也可以使用channel。为了和使用通道的文件,socket连接,或多或少地添加了新方法

    大多数通道可以工作在非块模式下,有很好的可扩展性,尤其是在和Selectors(选择器)同时使用的时候。

    3.File locking and memory-mapped files(文件锁和内存映射文件)
    FileChannel对象提供许多面向文件的功能。比如文件锁这个进程之间处理数据必不可少的功能。把内存映射到文件,在你看来,文件就像是在内存之上一样,省去了把文件拷贝到内存的操作。

    4.Sockets
    SocketChannel 提供了一种和网络套接字新的交互方法,SocketChannel可以工作在非阻塞模式可以用来和Selectors一起工作。作为结果,许多scoket可以多路传输,比起java.net里的传统socket类更高效

    5.Selectors
    Selectors提供准备就绪选择(查看channel是否准备就绪)。也可以确定你感兴趣的Channel。通过使用Selector,大量的活动中的I/O channel 可以被一个线程简单有效地监控操作。

    6.Character sets(字符集)
    提供了多种从byte流映射到字符的方式。

    相关文章

      网友评论

          本文标题:JAVA NIO 主要概念介绍

          本文链接:https://www.haomeiwen.com/subject/ezuorxtx.html