美文网首页
NIO(一)Channel Buffer Selector

NIO(一)Channel Buffer Selector

作者: 天探女 | 来源:发表于2020-08-17 19:24 被阅读0次

Java NIO

针对学习并发编程网的资料进行总结
转载文章: 转载自并发编程网 – ifeve.com

NIO为什么性能比BIO高

  1. NIO面向缓冲区(Buffer),IO面向流(Stream),通过流读取时,数据从流上逐个读取,无法进行整体行为,而NIO通过操作缓冲区,可以进行更加便捷的数据偏移
  2. BIO是阻塞的,每处理一个事件需要一个线程,当一个线程无数据时,该线程阻塞;NIO则是操作管道,当管道内无数据时,线程会通过Selector操作另一个管道

组成

  • Channels
  • Buffers
  • Selectors

Channel

Java提供了TCP、UDP、网络IO和文件IO

  • FileChannel(文件)
  • DatagramChannel (UDP)
  • SocketChannel (TCP读取数据)
  • ServerSocketChannel (监听TCP连接,每一个新连接加入会创建一个SocketChannel

Buffer

数据可以从Channel写入到Buffer
也可以从Buffer读数据到Channel


Channel与Buffer.png

Buffer提供了基本数据类型

  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer

Selector

NIO单线程处理多个Channel,即一个Selector操作多个Channel。
向Selector注册Channel,然后调用它的select()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些事件,事件的例子有如新连接进来,数据接收等。

相关文章

  • Netty之NIO

    ------NIO简介(1)-------- NIO组件 channel,buffer,selector,pip,...

  • NIO(二、Buffer)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Bu...

  • NIO(四、Selector)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Se...

  • NIO(三、Channel)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Ch...

  • Java NIO

    java Nio Selector 选择器Buffer 缓冲器Channel 通道 Selector是NIO的核心...

  • NIO java编程

    NIO 同步式非阻塞式IO NIO组件:Buffer channel selector Buffer 缓冲区 1....

  • Netty基础-NIO(一)

    零、本文纲要 一、NIO三大组件 Channel Buffer Selector 二、Buffer 基础依赖 By...

  • Java-NIO:用Channel代替Stream

    简介 NIO主要组成部分: Channel Buffer Selector Channel有以下类型: FileC...

  • 2. Java NIO 概述

    Java NIO由下面几个核心组件组成: Channel Buffer Selector Java NIO有更多的...

  • Java NIO之Channel

    本文开始讲解Java NIO 的三个核心组件,Channel,Buffer,Selector。先从Channel开...

网友评论

      本文标题:NIO(一)Channel Buffer Selector

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