java NIO

作者: 杨殿生 | 来源:发表于2019-05-30 10:59 被阅读0次

    1 通道和缓冲(channel buffer)

    BIO也就是java传统的IO是基于字符流,字节流,而NIO是基于通道channel和缓冲区buffer进行操作的,数据总是从通道读取到缓冲区,或者从缓冲区写入通道中


    image.png

    1.1 Channel分类

    FileChannel
    DatagramChannel
    SocketChannel
    ServerSocketChannel

    1.2 Buffer分类

    ByteBuffer
    CharBuffer
    DoubleBuffer
    FloatBuffer
    IntBuffer
    LongBuffer
    ShortBuffer

    非阻塞

    BIO是阻塞的,NIO可以非阻塞使用I/O,当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似

    选择器(selector)

    Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。


    image.png

    参考:http://tutorials.jenkov.com/java-nio/index.html

    相关文章

      网友评论

          本文标题:java NIO

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