2016 - 2024

感恩一路有你

深入理解java nio Java中BIO,NIO和AIO的区别和应用场景?

浏览量:1151 时间:2021-04-10 16:35:59 作者:admin

Java中BIO,NIO和AIO的区别和应用场景?

AIO完全是异步通信。NiO是同步无阻塞通信。有一个典型的例子。把水烧开。假设有一个场景,有一排水壶(顾客)在烧开水。AIO的做法是,每个水壶都配有一个开关,当水沸腾时,开关会提醒相应的线程处理。NiO的方法是让线程连续观察每个水壶,并根据每个水壶的当前状态对其进行处理。Bio的方法是让线程留在一个水壶中,直到水壶沸腾,然后再处理下一个水壶。由此可见,AIO最聪明也最省力,NiO相对省力,一个人能看到所有的锅,bio最笨,劳动力低。

为什么nio效率会比bio高?

核心是合理利用硬件提供的功能。NiO只需要CPU在通道的帮助下参与IO的开始和结束,其他时段的控制权转移到通道,直接在磁盘和内存之间交换数据;bio需要CPU中的寄存器参与数据传输;如果是直接访问模式,CPU还需要轮询检查,而中断驱动模式也需要在字传输后进行检查。总之,NiO通过将CPU控制权委托给通道,减少了中断,不参与数据传输,提高了数据处理速度。

深入理解java nio java nio与bio的区别 nio和bio是什么知识

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。