java NIO

来源:互联网 发布:网络侦探巴尔巴兽 编辑:程序博客网 时间:2024/06/04 01:10

    要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算 机,基于传输协议和网络IO来实现,其中传输协议比较出名的有http、tcp、udp等等,http、tcp、udp都是在基于Socket概念上为某 类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种 语言通常都会提供一些更为贴近应用易用的应用层协议。

    J2SE1.4 中加入了新的I/O库(NIO),允许在Java应用中使用高速I/O。IO使用了新的I/O模型,它与原有的I/O库使用的模型有着很大区别。这篇文章 将一步一步教您使用NIO库中的select工具。select使您的服务器可以处理来自多个连接的大量据量。在对NIO库的简要介绍后,本文还讲解了 select工具的原理,最后分析了一个利用select工作的服务器的源码。

    Java使用了基于流的I/O模型。流是一种产生或消耗字节序列的对象。流可以与过滤程序连接在一起,扩展到可以处理各种不同的数据。流模型非常复杂,但是效率不高。这对于大多数应用来说还好,但当系统需要和硬件处理同样高的速度时,流模型就无法应付了。

    J2SE1.4中引入了新I/O库(NIO)来解决这个问题。NIO使用面向缓冲(buffer)的模型。这就是说,NIO主要处理大块的数据。这就避免了利用流模型处理所引起的问题,在有可能的情况下,它甚至可以为了得到最大的吞吐量而使用系统级的工具。

关于NIO的详细说明以及使用,请参考http://tech.ccidnet.com/art/322/20030903/62354_1.html
http://book.csdn.net/bookfiles/551/10055118438.shtml

 
原创粉丝点击