我得到一个非常奇怪的 NIO 行为,在非常罕见的情况下,当我调用 select() 时,我没有在断开连接时选择 readyKey(由于 VM 杀死),如下所示:
while (selector.isOpen()){
selector.select(SELECT_TIMEOUT);
Set<SelectionKey> readyKeys = selector.selectedKeys();
if(!readyKeys.isEmpty()){
System.out.println("Selected...");
}
}
密钥注册如下:
key.interestOps(SelectionKey.OP_READ);
操作系统:CentOS 6.2
虚拟机:XEN
Java:JDK_1.6u17
Keep_ALIVE 设置为每 1 秒运行一次