1.io是面向流的,也就是读取数据的时候是从流上逐个读取,所以数据不能进行整体以为,没有缓冲区;nio是面向缓冲区的,数据是存储在缓冲区中,读取数据是在缓冲区中进行,所以进行数据的偏移操作更加方便
2,io是阻塞的,当一个线程操作io时如果当前没有数据可读,那么线程阻塞,nio由于是对通道操作io,所以是非阻塞,当一个通道无数据可读,可切换通道处理其他io
3,nio有selecter选择器,就是线程通过选择器可以选择多个通道,而io只能处理一个
2,io是阻塞的,当一个线程操作io时如果当前没有数据可读,那么线程阻塞,nio由于是对通道操作io,所以是非阻塞,当一个通道无数据可读,可切换通道处理其他io
3,nio有selecter选择器,就是线程通过选择器可以选择多个通道,而io只能处理一个
本文对比了Java中IO和NIO的主要区别:1. IO面向流,无法进行数据整体偏移,缺乏缓冲;NIO面向缓冲区,可以方便地进行数据偏移。2. IO操作是阻塞式的,当没有数据可读时会阻塞线程;NIO是非阻塞的,可以通过切换通道来处理其他IO操作。3. NIO提供了Selector选择器,允许一个线程管理多个通道。
1060

被折叠的 条评论
为什么被折叠?



