BIO&NIO

Posted jaxyoun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BIO&NIO相关的知识,希望对你有一定的参考价值。

  1. 在BIO中只有一个核心对象--Stream,它是单向的数据传输通道,即每个Stream要么是输入要么是输出的,不可兼得。开发人员是面向Stream进行编程的。
  2. 在NIO中有三个核心对象--Seletor、Channel、Buffer。其中Selector是一个事件循环线程,不停的监听注册在其上的事件;Channel是一个双向的数据通道,它需要注册绑定到一个Selector上接受监听;Buffer是一个基于数组实现的缓冲区,它是运输数据的容器,它必须依附于一个Channel存在;开发人员是面向Buffer进行编程的。一个Seletctor上可以注册多个Channel,每个Channel上又分配了一个Buffer,当一个Buffer完成读写操作后,读或写就绪的事件会被相应的Selector监听到,Seletor就会将对应的Channel摘出来,交给其他线程做后续业务逻辑的处理。

以上是关于BIO&NIO的主要内容,如果未能解决你的问题,请参考以下文章

(转)IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别

IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别

IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别

NIO 源码分析(03) 从 BIO 到 NIO

BIO NIO AIO 学习笔记

Java BIO与NIO以及AIO分析