while (!bStop) { try { int n = selector.select(); // 如果要shutdown,关闭selector退出 if (bStop) { selector.close(); break; } // 如果select返回大于0,处理事件 if (n > 0) { for (Iterator i = selector.selectedKeys().iterator(); i.hasNext(); ) { // 得到下一个Key SelectionKey sk = (SelectionKey) i.next(); i.remove(); // 处理 if (sk.isConnectable()) { this.event.processConnect(sk); } else if (sk.isReadable()) { this.event.processRead(sk); sk.cancel(); } else if (sk.isWritable()) { this.event.processWrite(sk); sk.cancel(); } } } else { //?????注册write后,不停的执行 } } catch (IOException e) { log.error(e.getMessage()); this.event.processError(e); } catch (Exception e) { log.error("数据处理错误: " + e.getMessage()); } } log.debug("nio监听线程已经退出"); } <p class="indent">