美文网首页
IO(NIO)

IO(NIO)

作者: Bruce基 | 来源:发表于2020-05-07 16:09 被阅读0次

IO

  • IO操作分为两部分 1)发起数据请求 2)数据读写
  • 阻塞、非阻塞主要是针对线程发起io请求后,是否立即返回来定义的,立即返回称为非阻塞io,否则称为阻塞io。
  • 同步、异步主要针对io数据读写来定义的,读写数据过程中不阻塞线程称为异步io,否则,称为同步io。

区别

1
IO:阻塞(无选择器)
NIO:同步非阻塞 (选择器Selectors)

2
IO是面向流的
NIO是面向缓冲区的

NIO可让您只使用一个(或几个)单线程管理多个通道(网络连接或文件),但付出的代价是解析数据可能会比从一个阻塞流中读取数据更复杂。

场景

如果需要管理同时打开的成千上万个连接,这些连接每次只是发送少量的数据,例如聊天服务器,实现NIO的服务器可能是一个优势。同样,如果你需要维持许多打开的连接到其他计算机上,如P2P网络中,使用一个单独的线程来管理你所有出站连接,可能是一个优势。一个线程多个连接的设计方案如下图所示

image.png

说明

本文只做学习参考,如有任何不准确的地方欢迎指正。

我的邮箱:

  • lulongji2011@163.com

相关文章

  • note

    Java IO,NIO,NIO2 以及与操作系统,磁盘 IO NIO模型selector NIO的核心是IO线程池...

  • Java NIO

    1、IO和NIO的区别? 1)IO面向流、NIO面向缓冲;2)IO是阻塞IO、NIO是非阻塞IO;3)无 与 选择...

  • IO/NIO/AIO & Netty

    IO/NIO/AIO 的区别: IO和NIO 又称为Blocking IO 和 No Blocking IO 即为...

  • java NIO详解

    NIO原理 NIO与IO的区别 首先来讲一下传统的IO和NIO的区别,传统的IO又称BIO,即阻塞式IO,NIO就...

  • Java NIO 记录(一)

    一、NIO简介 Java NIO (New IO , Non Blocking IO)。NIO是一个基于通道,...

  • Java NIO 和 IO 之间的主要差别

    NIO 和 IO 之间的主要差别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 ...

  • NIO之十三-BIO VS NIO

    Java NIO vs. IO Main Differences Betwen Java NIO and IO S...

  • 3 java的IO

    java nio Java的IO体系:旧IO新IO:nio,用ByteBuffer和FileChannel读写ni...

  • IO、NIO

    IO、NIO Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO...

  • 29、 Java IO与 NIO的区别(补充)

    Java IO与 NIO的区别(补充) NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同...

网友评论

      本文标题:IO(NIO)

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