当前位置:首页 > 开发 > 编程语言 > Java IO > 正文

Java NIO与IO

发表于: 2015-05-12   作者:cfyme   来源:转载   浏览:
摘要: Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。 IO                NIO 面向流            面向缓冲 阻塞IO      

Java NIO和IO的主要区别

下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。

IO                NIO
面向流            面向缓冲
阻塞IO            非阻塞IO
无                选择器

 

  1. 面向流与面向缓冲
    IO是面向流的,使用者从流中将数据读取出来,缓存在其它地方后才能使用;而NIO面向缓冲区,数据的读写通过缓冲区来进行,可以在缓冲区中前后移动,增加了处理过程中的灵活性,当然也会导致更复杂的检查。
  2. 阻塞与非阻塞IO
    IO是阻塞的,一个线程中调用read()或者write()时不能做其他的事情;而NIO的非阻塞模式可以将空余时间用来做其他事情,一个线程中可以管理多个输入输出通道。
  3. 选择器
    NIO选择器允许在一个线程中件数多个输入通道,使得多输入情况下的处理非常简单。

由于非阻塞和选择器的使用,NIO在处理大量连接时更加高效和便利,但是由于缓冲数据读写的不确定性,对单份数据的解析则较为麻烦;因此如果需要管理同时打开的大量连接,这些连接每次发送的数据不多(聊天服务器,P2P网络等),使用NIO更有优势;而连接较少却发送较多数据或者数据需要逐步解析时,使用IO则更为方便。

转载:http://ifeve.com/java-nio-vs-io/

Java NIO与IO

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号