java 规格overview_Java NIO Overview(二)

Java NIO Overview

Java NIO包含以下部件:

Channels

Buffers

Selectors

Java NIO由很多类和组件组成,但是channel和buffer还有selector是Java NIO的核心。还有一些 Pipe 和 FileLock等,这些都是辅助这三个核心的部件,所以不用初学不用可以深入。

Channel and Buffers

典型的,所有IO在NIO中都是从channel开始的。Channel有点像Stream。从channel可以读取数据到buffer中,也可以从buffer中将数据写到channel中。

3f29ac6638cbfe12944e639b0e4c8b67.png

这里有一些channel和buffer的类型:

FileChannel

DatagramChannel

SocketChannel

ServerSocketChannel

ByteBuffer

CharBuffer

DoubleBuffer

FloatBuffer

IntBuffer

LongBuffer

ShortBuffer

正如你所见的,channel包括了UDP+TCP、networking IO,和File IO。这些buufer类型覆盖了你能向IO传输的基本数据类型:byte、char、short、int、long、float、double

Java NIO还有一种类型 MappedByteBuffer,这是和内存文件映射有关。

Selectors

selector允许一个线程掌控多个channel。如果你的应用有多个connection(channel)时,使用selector是非常便利的。适用于每个连接的流量都很少的情况,例如聊天室。

da48ad2f3f182df777c9e086a79a65b3.png

为了使用selector,你可以向他注册多个channel。之后调用select()方法,这个方法将会阻塞,直到有一个已经为channel准备好的事件。一旦这个方法返回,线程就可以控制其他事件了,例如引入连接,数据接收等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值