Advertisement

说一下NIO并简短的说一下和IO的区别?NIO,BIO,AIO

阅读量:

说一下NIO并简短的说一下和IO的区别?NIO,BIO,AIO

IO模型主要分类:

以下是对输入文本的改写

1.BIO (同步阻塞I/O模式)

数据的读取写入必须阻塞在一个线程内等待其完成。

这里采用了那个经典的烧开水例子来进行说明;举例说明了一个烧开水的场景:一排热水瓶都放在火上开始沸腾。BIO机制的工作流程是:让一个线程一直挂在那里观察某个特定的热水瓶是否沸腾起来;一旦该热水瓶沸腾后才会转而处理下一个热水瓶。然而,在等待该热水瓶沸腾的过程中,并未执行任何操作。

2.NIO**(同步非阻塞)**

同时支持异步处理方式的组合,在这里我们采用同步的异步输入输出(I/O)模式来进行说明。那么同步的异步输入输出(I/O)模式到底是什么意思呢?举个例子:比如烧水的过程,在NIO的做法中会是一个单线程持续不断地检查每个水壶的状态,并根据当前状态执行相应的操作步骤。

3.AIO**(异步非阻塞I/O模型)**

两者的区别主要体现在哪里?异步非阻塞不需要一个线程去检查所有IO操作的变化,在这些变化发生后会通知相关的线程来处理。在实际应用中比如烧开水的例子中,在每个水壶上安装了开关,在水烧开时自动通知相关线程。

全部评论 (0)

还没有任何评论哟~