BIO&NIO
Posted jaxyoun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BIO&NIO相关的知识,希望对你有一定的参考价值。
- 在BIO中只有一个核心对象--Stream,它是单向的数据传输通道,即每个Stream要么是输入要么是输出的,不可兼得。开发人员是面向Stream进行编程的。
- 在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,同步,异步,阻塞和非阻塞 区别