【JAVA】【NIO】2、Java NIO Overview

Java NIO主要有以下核心组件构成:

通道缓存选择器 Java NIO其实有比上面更多的类和组件,但是在我看来,Channel,Buffer,Selector是核心的API。其它组件,像管道和文件锁,仅仅只是在与三大核心组件结合使用时的通用工具类。通道和缓存

一般来说,NIO中的所有IO都是从通道开始的。通道就像一个流,数据可以从通道中读到一个缓存里去,同样,数据可以从缓存写进通道里

上面代表读操作,下面代表写操作

在Java NIO中,主要有如下几种通道: ·FileChannel ·DatagramChannel ·SocketChannel ·ServerSocketChannel 这些通道覆盖了网络中的TCP,UDP的IO和文件IO。

在Java NIO中,核心的缓存如下: ·ByteBuffer ·CharBuffer ·DoubleBuffer ·FloatBuffer ·IntBuffer ·LongBuffer ·ShortBuffer 这些缓存包括了通过IO发送数据的基本数据类型。 Java NIO还有一个MappedByteBuffer是用于内存文件映射的。

选择器

一个选择器允许单个线程处理多个通道的数据。如果你的应用打开了很多连接(channel),这就非常方便了,但是每个连接(channel)的流量会小一点。比如聊天服务器。

单个线程通过选择器处理三个通道

首先把通道注册到选择器上,然后你调用select()方法,这个方法会阻塞,直到有一个通道在你注册的事件上就绪了。一旦方法返回了,线程就可以处理事件了。事件可以是建立连接,接受数据等等。

这里提前附上一段代码,各位读者,,先看下,后面会慢慢讲解,代码中也会有详细的注释

这段代码就描述了选择器,注册等相关机制。

人生重要的不是所站的位置,而是所朝的方向

【JAVA】【NIO】2、Java NIO Overview

相关文章:

你感兴趣的文章:

标签云: