Java--tomcat线程池(分析)

摘要:
AcceptCount:AcceptCount=“50”当同时连接数达到maxThreads时,您还可以接收排队连接数。如果数字超过此数字,将直接返回您以拒绝连接。默认值为10maxSpareThreads=“75”,这意味着如果最多有75个线程可以是空的,例如,在某个时间有80个人访问,之后没有人访问,tomcat将不会保留80个空线程,而是关闭5个空线程。(一旦创建的线程超过此值,Tomcat将关闭不再需要的套接字线程。与最大连接数相关的参数是maxThreads和acceptCount。tomcat5中的配置示例:主要调整maxThreads的值和acceptCount

以apache-tomcat-7.0.57 为例子

tomcat的默认配置如下:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

默认的线程池为:

maxThreads: maxThreads="500"     表示最多同时处理200个连接,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。 

acceptCount:  acceptCount="50"      当同时连接的人数达到maxThreads时,还可以接收排队的连接数量,超过这个连接的则直接返回拒绝连接。(指定当任何能够使用的处理请求的线程数都被使用时,能够放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。 )

minSpareThreads="25"     表示即使没有人使用也开这么多空线程等待  。默认值为10

maxSpareThreads="75"     表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。  (一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。 

其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。tomcat5中的配置示例:
    <Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               acceptCount="100"/>
主要是调整maxThreads 和acceptCount的值

免责声明:文章转载自《Java--tomcat线程池(分析)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Harbor redis容器启动失败安装centos7模板机[正常版]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

详解tomcat的连接数与线程池

前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章详解Tomcat配置文件server.xml中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Ser...

如何通过线程池异步调用

生产者-消费者模式在系统交互方面,有几个特点: 1、系统解耦 2、解决并发问题 3、不需要关心对方系统何时处理数据,处理结果如何 下面用几个简单例子逐步说明。 简单例子 假设有两个系统,A系统和B系统,B系统需要依赖A系统产生的数据,也就是说,A系统产生数据后,必须把数据扔给B系统。 这个时候,可以让B系统提供一个方法,比如说提供一个http接口sen...

Java高性能并发编程——线程池

在通常情况下,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以...

MYSQL连接字符串参数详细解析(大全参考)

阅读目录 Connector/Net Connection String Options Reference 回到目录 Connector/Net Connection String Options Reference Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Pa...

Android开发——Android中常见的4种线程池(保证你能看懂并理解)

0.前言 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52415337 使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用Schedu...

异步线程池的实现(一)-------具体实现方法

本篇是这个内容的第一篇,主要是写:遇到的问题,和自己摸索实现的方法。后面还会有一篇是总结性地写线程池的相关内容(偏理论的)。 一、背景介绍     朋友的项目开发到一定程度之后,又遇到了一些问题:在某些流程中的一些节点,由于是串联执行的。上一步要等下一步执行完毕;或者提交数据之后要等待后台其他系统处理完成之后,才能返回结果。这样就会导致,请求发起方不得不一...