引用
第一步,打开共享的线程池
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="1000" minSpareThreads="50" maxIdleTime="600000"/>
默认前后是注释<!-- -->掉的,去掉就可以了。其中
name
The name used to reference this pool in other places in server.xml. The name is required and must be unique.
这个是线程池的名字,必须唯一,我们在后面的配置里要用到这个东西
namePrefix
(String) The name prefix for each thread created by the executor. The thread name for an individual thread will be namePrefix+threadNumber
线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如
catalina-exec-1
catalina-exec-2
maxThreads
(int) The max number of active threads in this pool, default is 200
允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,反正只是限制而已,不占用资源
minSpareThreads
(int) The minimum number of threads always kept alive, default is 25
最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源。
maxIdleTime
(int) The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads. Default value is 60000(1 minute)
超过最小活跃线程数量的线程,如果空闲时间超过这个设置后,会被关别。默认是1分钟。
threadPriority
(int) The thread priority for threads in the executor, the default is Thread.NORM_PRIORITY
线程的等级。默认是Thread.NORM_PRIORITY
引用
第二步
在 Connector里指定使用共享线程池
<Connector
port="8009"
protocol="AJP/1.3"
maxThreads="5000"
executor="tomcatThreadPool"
注意,一旦使用了线程池,则其它的线程属性,比如 maxThreads等将被忽略
我测试了一下,由于每次请求不再需要重新分配线程,系统响应速度还是有很明显的改善的。
引用
转:http://blog.csdn.net/java2000_net/article/details/3280020
分享到:
相关推荐
### Tomcat 6.0 共享线程池配置详解 #### 一、引言 在探讨Tomcat 6.0共享线程池配置之前,我们先了解下什么是线程池以及为什么要在Tomcat服务器中配置共享线程池。线程池是一种用于管理多个线程并重用它们的技术,...
SpringMVC配置线程池Executor做多线程并发操作的代码实例 在本文中,我们将探讨如何使用SpringMVC框架来配置线程池Executor,以实现多线程并发操作。线程池Executor是Spring框架提供的一种线程池实现,它允许我们在...
如果线程池配置得过小,可能会导致处理请求的延迟增加;如果配置得过大,则可能会造成线程上下文切换的开销,反而降低性能。 因此,设置连接数和线程池时需要根据实际的硬件资源和业务负载来做出调整。一般而言,...
Java并发之线程池Executor框架的深入理解 Java中的线程池Executor框架是Java并发编程中的一种常见机制,用于管理和执行异步任务。通过使用线程池,可以大大减少线程的创建和销毁开销,从而提高系统的性能和稳定性。...
`ExecutorService`接口继承自`Executor`,提供了更丰富的管理功能,如关闭线程池、管理线程等。`ThreadPoolExecutor`和`ScheduledThreadPoolExecutor`是`ExecutorService`的两个关键实现,分别用于执行一次性任务和...
java.线程池与Executor框架(解决方案).md
总结,`Android Executor`线程池提供了强大的并发任务处理能力,通过合理配置和使用,可以显著提升应用的性能和响应速度。在实际开发中,理解并掌握`ExecutorService`和其子类的使用,是每个Android开发者必备的技能...
2. **线程池中的线程(Pool Threads)**:预先创建或按需创建的一组线程,它们负责从工作队列取出并执行任务。 3. **线程工厂(Thread Factory)**:用于创建新线程的对象,可以根据需求定制线程的行为,如设置线程...
Executor(线程池)是Tomcat6引入的新特性,允许开发者自定义线程池来处理请求,提高并发性能。在Connector中通过executor属性引用Executor的名字。 5. **Engine**: Engine是处理请求的中心,它可以有多个Host,...
线程池配置对于提升Tomcat处理高并发请求的能力至关重要。合理的线程池配置不仅能够提高系统响应速度,还能有效避免资源浪费。 **线程池配置示例**: 1. 打开`conf/server.xml`文件,并增加以下配置: ```xml ...
Tomcat启动时会读取`conf/server.xml`配置文件,解析并创建Catalina核心引擎,然后初始化各个组件,如Connector(用于接收和处理HTTP请求)、Executor(线程池)、Context(每个Web应用对应一个)等。 4. **请求...
- `Executor`: Tomcat 7及以上版本支持线程池配置,通过`Executor`可以定制线程池大小,提高并发性能。 3. **Context配置** - `Context`: 定义了Web应用的上下文路径,可以在`server.xml`或`context.xml`中配置,...
1. Executor:它是Java中线程池的顶级接口,定义了执行线程的抽象方法,但它本身并不直接提供线程池功能。 2. ExecutorService:是真正的线程池接口,提供了一系列方法来管理线程的生命周期以及任务的执行。 3. ...
5. **线程池设计**:Tomcat使用Executor线程池管理请求处理线程,这有助于控制并发处理能力,避免过多的线程消耗资源。 6. **会话管理**:Tomcat支持会话跟踪,使用Session对象存储用户状态。默认情况下,会话信息...
在Java中,`ThreadPoolExecutor`是线程池的核心实现类之一,它提供了丰富的配置选项来满足不同的应用场景需求。该类继承自`AbstractExecutorService`,实现了线程池的主要功能。 **构造方法详解**: ```java ...
Java线程池和Executor原理分析 Java线程池和Executor原理是Java并发编程中非常重要的一部分。线程池是一个或者多个线程的集合,用户可以把需要执行的任务简单地扔给线程池,而不用过多的纠结与执行的细节。Java...
在这个配置中,我们设置了线程池的核心线程数(corePoolSize)、最大线程数(maxPoolSize)、工作队列容量(queueCapacity)、线程前缀名(threadNamePrefix)以及空闲线程存活时间(keepAliveSeconds)。...
Coyote组件的Executor接口允许自定义线程池,以优化并发性能。 3. **Jasper组件**:Jasper是Tomcat的JSP引擎,负责将JSP文件编译成Java Servlet。在Tomcat6中,Jasper会先将JSP文件转换为一个.java源文件,然后通过...
**Tomcat服务器配置详解** Tomcat是一款开源的Java Servlet容器,它是Apache软件基金会下的Jakarta项目的一部分,主要用于运行Java Web应用程序。本教程将深入探讨如何配置Tomcat服务器,以实现高效、安全且稳定的...