title: SelectorImpl is BLOCKED
body: <p>I use a lot of client sends a request to the server about 1000 requests per second a client, the server's CPU soon rose to 600% (8 cores), and always maintain this state. When I use jstack printing process content, I found SelectorImpl is BLOCKED state. Records are as follows:</p>
  
  <pre><code>nioEventLoopGroup-4-1 prio=10 tid=0x00007fef28001800 nid=0x1dbf waiting for monitor entry [0x00007fef9eec7000]
  java.lang.Thread.State: BLOCKED (on object monitor)
  at sun.nio.ch.EPollSelectorImpl.doSelect(Unknown Source)
  - waiting to lock &lt;0x00000000c01f1af8&gt; (a java.lang.Object)
      at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
      - locked &lt;0x00000000c01d9420&gt; (a io.netty.channel.nio.SelectedSelectionKeySet)
      - locked &lt;0x00000000c01f1948&gt; (a java.util.Collections$UnmodifiableSet)
      - locked &lt;0x00000000c01d92c0&gt; (a sun.nio.ch.EPollSelectorImpl)
      at sun.nio.ch.SelectorImpl.select(Unknown Source)
      at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:635)
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:319)
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
      at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>High CPU has something to do with this? Another problem is that when I connect a lot of clients, find some client will connect, an error is as follows:</p>
  
  <pre><code>"nioEventLoopGroup-4-1" prio=10 tid=0x00007fef28001800 nid=0x1dbf waiting for monitor entry [0x00007fef9eec7000]
  java.lang.Thread.State: BLOCKED (on object monitor)
  at sun.nio.ch.EPollSelectorImpl.doSelect(Unknown Source)
  - waiting to lock &lt;0x00000000c01f1af8&gt; (a java.lang.Object)
  at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
  - locked &lt;0x00000000c01d9420&gt; (a io.netty.channel.nio.SelectedSelectionKeySet)
  - locked &lt;0x00000000c01f1948&gt; (a java.util.Collections$UnmodifiableSet)
  - locked &lt;0x00000000c01d92c0&gt; (a sun.nio.ch.EPollSelectorImpl)
  at sun.nio.ch.SelectorImpl.select(Unknown Source)
  at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:635)
  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:319)
  at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
  at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>Generate client is accomplished by using a thread pool, and has set up a connection timeout, but why frequent connection timeout? Is to serve the cause of the suit?</p>
  
  <pre><code>    public void run() {
  
      System.out.println(tnum + " connecting...");
      try {
          Bootstrap bootstrap = new Bootstrap();
          bootstrap.group(group)
          .channel(NioSocketChannel.class)
          .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 30000)
          .handler(loadClientInitializer);
  
          // Start the connection attempt.
          ChannelFuture future = bootstrap.connect(host, port);
          future.channel().attr(AttrNum).set(tnum);
          future.sync();
          if (future.isSuccess()) {
              System.out.println(tnum + " login success.");
              goSend(tnum, future.channel());
          } else {
              System.out.println(tnum + " login failed.");
          }
      } catch (Exception e) {
          XLog.error(e);
      } finally {
  </code></pre>
  
  <p>//              group.shutdownGracefully();
          }</p>
  
  <pre><code>}
  </code></pre>