Java里面标准IO和NIO有什么不同?

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 166 收藏 0 点赞 0 评论 0

1) IO 流  和 NIO 块的区别

标准IO和NIO在数据打包和传输方式有所区别,标准IO以流的方式处理数据,NIO以块的方式处理数据

2) 同步和异步

Java 标准IO流是线程堵塞和同步的,也就是说如果一个线程调用了read()或write()方法,这个线程在读写操作执行完毕前都是堵塞的。

3) 标准IO和NIO的 API不同

在NIO里面,数据不是一个字节一个自己的读取的,而是首先被读入到一个buffer里面,然后再被处理

NIO允许你在同一个线程里面管理多个渠道,但是数据转换和处理会比标准IO复杂和更消耗资源一些。

如果你需要管理数千个并发的连接,每一个连接只发送较少的数据(比如聊天服务器), 使用NIO来实现会比较有优势。

如果你需要同时保持很多到其他服务器的连接,比如P2P网络,使用单线程来管理所有的出口连接会比较有优势。

如果你有较少的连接但是需要发送大量数据、占用大量贷款,用标准IO来实现会比较合适。

评论列表
文章目录