请教各位一个NIO的问题
我使用了下面一段来接收连接请求,使用的nio包,结果发现在第一次等待连接请求时,程序会阻塞在selector.select()这里.一旦接收到一个连接请求后,程序就不会再阻塞在任何地方,会在for循环里不停的跑,而cpu也基本是100%的转.请问这是什么原因?有什么法子,让cpu不至于这样100%的跑?
for(;;) {
selector.select();
Set keys = selector.selectedKeys();
Iterator i = keys.iterator();
while (i.hasNext()) {
SelectionKey key = (SelectionKey) i.next();
i.remove();
if (key.isAcceptable()) {
SocketChannel client = serverChannel.accept();
return client ;
} else {
break;
}
}
}