why the 3rd tcp connection writer be blocked by netty worker thread pool with size 2
everybody. I test some simple example, but find that if I set worker thread pool size with fixed 2 when start a NIOServer, then try to connect netty server with 2 more tcp conection(connecting and not close), I find the 3rd and 3rd+ connection can connect the server, but the write operation be blocked, noting go into my handler. Only if i close 1st or 2nd connection, the 3rd write request can get into my handler, and my hander do nothing just print helloworld.

**Main Code:**

    ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newSingleThreadExecutor(),
    		        Executors.newFixedThreadPool(2)));
    
    bootstrap.setPipelineFactory(new DispatchServerPipeLineFactory());
    
    bootstrap.setOption("child.tcpNoDelay", true);
    bootstrap.setOption("child.keepAlive", true);
    		
    bootstrap.bind(new InetSocketAddress(8080));

**only one handler code:**

    @Override
    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    		
    	System.out.println("hello");
    		
    	super.messageReceived(ctx, e);
}

Can anyone help me?
am I must use Executors.newCachedThreadPool()?

why the 3rd tcp connection writer be blocked by netty worker thread pool with size 2
===

everybody. I test some simple example, but find that if I set worker thread pool size with fixed 2 when start a NIOServer, then try to connect netty server with 2 more tcp conection(connecting and not close), I find the 3rd and 3rd+ connection can connect the server, but the write operation be blocked, noting go into my handler. Only if i close 1st or 2nd connection, the 3rd write request can get into my handler, and my hander do nothing just print helloworld.

**Main Code:**

    ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newSingleThreadExecutor(),
    		        Executors.newFixedThreadPool(2)));
    
    bootstrap.setPipelineFactory(new DispatchServerPipeLineFactory());
    
    bootstrap.setOption("child.tcpNoDelay", true);
    bootstrap.setOption("child.keepAlive", true);
    		
    bootstrap.bind(new InetSocketAddress(8080));

**only one handler code:**

    @Override
    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    		
    	System.out.println("hello");
    		
    	super.messageReceived(ctx, e);
}

Can anyone help me?
am I must use Executors.newCachedThreadPool()?
