以下是tomcat的配置文件server.xml中配置Http11NioProtocol协议的示例apache
<Connector connectionTimeout="20000" maxThreads="1000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>
这里配置的Http11NioProtocol协议的connector是一个Non-blocking NIO connector,即非阻塞链接池。tomcat
其中.net
maxThreads:tomcat可用于请求处理的最大线程数
minSpareThreads:tomcat初始线程数,即最小空闲线程数
maxSpareThreads:tomcat最大空闲线程数,超过的会被关闭线程
在tomcat中,默认的http链接池是阻塞链接池,按照的是每一个链接一个线程的模式运行。这样有多少个不一样的concurrent的用户,就要占用多少链接,很是消耗资源。日志
和默认的http链接池相反的就是使用Http11NioProtocol协议的Non-blocking NIO connector,这个线程池会保持必定数量的线程,当有新的http链接时,由线程池分配一个线程来工做,这种模式最大限度的利用了线程的资源。server
如何判断Http11NioProtocol协议的线程池生效了?xml
当tomcat启动时,会有以下所示的控制台日志出现资源
Mar 31, 2017 5:50:35 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-nio-8080"] Mar 31, 2017 5:50:35 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector