码迷,mamicode.com
首页 > 编程语言 > 详细

Java NIO

时间:2020-01-16 10:41:58      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:创建   需要   缓冲区   sele   非阻塞   sel   out   内存   通过   

1、NIO和OIO

      非阻塞NIO的提出弥补了OIO同步阻塞的不足。

      OIO是面向流的,需要顺序的读取字节,不能随意改变读取指针的位置。

      NIO是面向缓冲区的,引入Channel和Buffer,可以随意地读取Buffer中任意位置的数据。

      NIO通过通道和通道的多路复用技术实现非阻塞(IO多路复用模型)。

      OIO没有选择器,而NIO有选择器概念。

2、Channel

      OIO,同一个网络连接会关联到两个流InputStream、OutputStream。

      NIO,同一个连接使用一个通道表示,具备可读、可写的功能。

3、Selector

      监视多个文件描述符是否可读、可写?通过选择器,一个线程可以查询多个通道的IO事件就绪状态(可读、可写、网络连接完成等)。

    【优点】 系统开销小,不必为每一个网络连接创建进程/线程。

4、NIO Buffer

      read: 数据从通道读取到缓冲区中, write:数据从缓冲区写入到通道中。

4.1、NIO Buffer类

      位于java.nio包,内部是内存块(数组),

      

Java NIO

标签:创建   需要   缓冲区   sele   非阻塞   sel   out   内存   通过   

原文地址:https://www.cnblogs.com/jx9527/p/12199869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!