全文详见个人独立博客:Java NIO框架Netty教程(十二)-并发访问测试(中) Java NIO框架Netty教程(十二)-并发访问测试(中)写在前面:对Netty并发问题的测试和解决完全超出了我的预期,想说的东西越来越多。所以才出现这个中篇,也就是说,一定会有下篇。至于问题点的发现,OneCoder也在努力验证中。 继续并发的问题。在《Java NIO框架Netty教程(十一)-并发访问测试(上)》中,我们测试的其实是一种伪并发的情景。底层实际只有一个Channel在运作,不会出现什么无响应的问题。而实际的并发不是这个意思的,独立的客户端,自然就会有独立的channel。也就是一个服务端很可能和很多的客户端建立关系,就有很多的Channel,进行了多次的绑定。下面我们来模拟一下这种场景。 /** * Netty并发,多connection,socket并发测试 * * @author lihzh(OneCoder) * @alia OneCoder * @Blog http://www.coderli.com * @date 2012-8-13 下午10:47:28 */ public class ConcurrencyNettyMultiConnection { public static void main(String args[]) { final ClientBootstrap bootstrap = new ClientBootstrap( new NioClientSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); // 设置一个处理服务端消息和各种消息事件的类(Handler) bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public ChannelPipeline getPipeline() throws Exception { return Channels.pipeline(new ObjectEncoder(), new ObjectClientHandler() ); } }); for (int i = 0; i < 3; i++) { bootstrap.