title: Netty 4 multithreaded DefaultEventExecutorGroup
body: <p>I started a netty4 nio server with  multiple business threads for handling long-term businesses
  like below</p>
  
  <pre><code>public void start(int listenPort, final ExecutorService ignore)
          throws Exception {
              ...
      bossGroup = new NioEventLoopGroup();
      ioGroup = new NioEventLoopGroup();
      businessGroup = new DefaultEventExecutorGroup(businessThreads);
  
      ServerBootstrap b = new ServerBootstrap();
      b.group(bossGroup, ioGroup).channel(NioServerSocketChannel.class)
              .childOption(ChannelOption.TCP_NODELAY, 
                           Boolean.parseBoolean(System.getProperty(
                                   "nfs.rpc.tcp.nodelay", "true")))
              .childOption(ChannelOption.SO_REUSEADDR, 
                           Boolean.parseBoolean(System.getProperty(
                                   "nfs.rpc.tcp.reuseaddress", "true")))
              .childHandler(new ChannelInitializer&lt;SocketChannel&gt;() {
                  @Override
                  public void initChannel(SocketChannel ch)
                          throws Exception {
                      ch.pipeline().addLast("decoder",
                              new Netty4ProtocolDecoder());
                      ch.pipeline().addLast("encoder",
                              new Netty4ProtocolEncoder());
                      ch.pipeline().addLast(businessGroup, "handler",
                              new Netty4ServerHandler());
                  }
              });
  
      b.bind(listenPort).sync();
      LOGGER.warn("Server started,listen at: " + listenPort + ", businessThreads is " + businessThreads);
  }
  </code></pre>
  
  <p>I found that there was only one thread working when  the server accepted one connection. 
  How can I bootstrap a server that can start multiple business threads for only one connection?</p>
  
  <p>Thanks,
  Mins</p>