title: 编写高性能Java服务器，应该选用何种方案？
desc: 在处理大量并发socket请求时，是应该选用java.util.concurrent的线程池模型还是选用java.nio中的Selector模型？在通常的开发中一般如何提高服务器并发处理能力？
topic: 服务器
content: 所谓的高性能其实都是和业务紧密相关的，比如处理时间长短，长链接还是短链接，连接的数量等。根据业务特性来选择是否用BIO或者NIO，比如NIO擅长处理的是海量连接。另外java.util.concurrent的线程池模型还是java.nio中的Selector模型，这两者并不冲突，况且这两者解决的问题是不一样的。线程池模型解决的是连接创建的消耗问题，Selector模型解决的是IO复用等问题。。刚google了下，发现了比较好的文章，可以参考下：Java NIO
answerer_tags: Java 分布式