Java NIO API

http://www.blogjava.net/19851985lili/articles/93524.html

 

NIO 详解:

    NIO主要包括两个部分:java.nio.channels包介绍Selector和Channel抽象,java.nio包介绍Buffer抽象。

 

 

http://www.cnblogs.com/phoebus0501/archive/2010/12/05/1897245.html

4) Selector小结

    总的来说,使用Selector的步骤如下:

1、 创建一个Selector实例。

2、 将其注册到各种信道,指定每个信道上感兴趣的I/O操作。

3、 重复执行:

1) 调用一种select方法

2) 获取选取的键列表

3) 对于已选键集中的每个键。

a.  获取信道,并从键中获取附件(如果合适的话)

b.  确定准备就绪的操作并执行。如果是accept操作,将接受的信道设置为非阻塞模式,并将其与选择器注册。

c.  如果需要,修改键的兴趣操作集

d.  从已选键中移除键

如果选择器告诉了你什么时候I/O操作准备就绪,你还需要非阻塞I/O吗?答案是肯定的。信道在已选键集中的键并不能确保非阻塞I/O,因为调用了 select()方法后,键集信息可能会过时。另外,阻塞式写操作会阻塞等待直到写完所有字节,而就绪集中的OP_WRITE仅表示至少有一个字节可写。 实际上,只是非阻塞模式的信道才能与选择器进行注册:如果信道在阻塞模式,SelectableChannel类的register()方法将抛出 IllegalBlockingModeException异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值