2.将想要监控的信道(channel)注册(register)到Selector上
channel.register(selector,SelectionKey.OP_ACCEPT);
Channel必须处于非阻塞模式
FileChannel不能和Selector一起使用
因为它不能切换到非阻塞模式
套接字Channel都可以
accept中的第二个参数是Selector的兴趣点
表示Selector对监听的Channel的什么事件感兴趣
Connect
Accept
Read
Write
3.调用select()方法
返回可进行I/O操作的信道数量
如果经过一段时间后,仍然没有信道准备好,返回0
int select(long timeout)可以设置超时时间
select()阻塞等待
该方法会阻塞等待,直到有一个或更多的信道准备好了I/O操作或等待超时
4.调用selectedKeys()方法
就绪的SelectionKey的集合
迭代完成后调用key的remove()方法,将其从迭代器移除
必须手动移除
下次就绪时,Selector会再次将其放入已选择健集中