tomcat(3)线程池

标签: tomcat
21人阅读 评论(0) 收藏 举报
分类:

1、简介

tomcat默认未启用线程池,在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。

2、修改配置

2.1、添加连接池配置

修改conf/server.xml,添加线程池申明:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>

2.2、修改连接器配置

为连接器添加executor属性,值为连接池配置的name值。

<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />

如图所示:
这里写图片描述

3、Executor参数

配置信息详见http://127.0.0.1:8080/docs/config/executor.html

属性 描述
threadPriority (int)执行程序中线程的线程优先级,默认值是 5(Thread.NORM_PRIORITY常量的值)
daemon (boolean)线程是否应该守护线程,默认是 true
namePrefix (字符串)执行程序创建的每个线程的名称前缀。单个线程的线程名称将为namePrefix+threadNumber
maxThreads (int)此池中活动线程的最大数量,默认为 200
minSpareThreads (int)线程的最小数量始终保持活动状态,默认为 25
maxIdleTime (int)空闲线程关闭前的毫秒数,除非活动线程数小于或等于minSpareThreads。默认值是60000(1分钟)
maxQueueSize (int)在我们拒绝它们之前可以排队等待执行的最大可运行任务数。默认值是Integer.MAX_VALUE
prestartminSpareThreads (boolean)启动Executor时是否启动minSpareThreads,默认值是 false
threadRenewalDelay (long)如果配置了ThreadLocalLeakPreventionListener,它将通知此执行程序有关停止的上下文。上下文停止后,池中的线程会被更新。为避免同时更新所有线程,此选项设置更新任何2个线程之间的延迟时间。该值以毫秒为单位,默认值为1000毫秒。如果值为负数,线程不会被更新。

4、推荐配置

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="800" minSpareThreads="100" maxQueueSize="100" prestartminSpareThreads="true" />
查看评论

Python全栈工程师-第3周

Python全栈工程师-第3周
  • 2017年09月15日 17:34

tomcat线程池调优

之前项目一直在tomcat下开发,后来在上线之前,需要进行性能安全测试,可是测试的同事反应,登陆口线程并发一多的时候,系统立马就没法登陆了。 中间件是tomcat6.  tomcat的日志总是简洁的很...
  • lxl631
  • lxl631
  • 2015-11-24 20:08:38
  • 2187

Tomcat源码分析-线程池应用

线程池在tomcat中的应用
  • javaofeclipse
  • javaofeclipse
  • 2017-01-02 16:53:12
  • 1150

tomcat线程池的配置及源码实现

tomcat中线程池的配置是哎server.xml中:
  • joenqc
  • joenqc
  • 2017-08-06 12:08:19
  • 431

详解tomcat线程池原理及参数释义

tomcat线程池有如下参数: maxThreads, 最大线程数,tomcat能创建来处理请求的最大线程数 maxSpareTHreads, 最大空闲线程数,在最大空闲时间内活跃过,但现...
  • li396864285
  • li396864285
  • 2015-10-22 11:51:04
  • 6288

Tomcat线程池实现简介(一)

  目前市场上常用的开源Java Web容器有Tomcat、Resin和Jetty。其中Resin从V3.0后需要购买才能用于商业目的,而其他两种则是纯开源的。可以分别从他们的网站上下载最新的二...
  • hulefei29
  • hulefei29
  • 2009-01-21 17:38:00
  • 12704

Tomcat线程池详解

写在前面的话  最近一直都在研究Java的线程池ThreadPoolExecutor,但是虽然它那么好,但是在实际的用途中怎么去用,对于我来说就不知道如何下手了,还好有开源社区我们可以了解很多项目中所...
  • wxq544483342
  • wxq544483342
  • 2016-11-14 18:48:08
  • 1676

关于 Tomcat 的线程池的理解

默认配置下,Tomcat 会为每个连接器创建一个绑定的线程池(最大线程数 200)。在大多数情况下你不需要改这个配置(除非增大最大线程数以满足高负载需要)。但是 Tomcat 喜欢在每个工作者线程的 ...
  • defonds
  • defonds
  • 2015-02-11 16:33:27
  • 5007

由Java线程池的例子到Tomcat线程池

线程池的作用:   线程池作用就是限制系统中执行线程的数量。   根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量...
  • sannifing
  • sannifing
  • 2013-08-21 16:59:43
  • 1128

spring mvc tomcat 线程池的坑

1 配置tomcat  线程池设置为20个线程处理请求 2 后台框架是springmvc   3 模拟10个请求 4  发现tomcat线程池没一个干活的 5 干活的是spring自己创建的线程 为...
  • shuaizai88
  • shuaizai88
  • 2017-12-08 12:15:10
  • 142
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 1万+
    积分: 1096
    排名: 4万+
    博客专栏
    最新评论