配置tomcat线程池

一、线程池的作用:

           线程池的真正价值在于优化线程调度策略,改善系统的综合性能表现,同时也便于实施对于过量负载的选择性拒绝保障系统能够健壮、平稳地运行

         一个线程的周期分为:创建、运行、销毁三个阶段。处理一个任务时,首先创建一个任务线程,然后执行任务,完了,销毁线程。而线程处于运行状态的时候,才是真的在处理我们交给它的任务,这个阶段才是有效运行时间。所以,我们希望花在创建和销毁线程的资源越少越好。如果不销毁线程,而这个线程又不能被其他的任务调用,那么就会出现资源的浪费。为了提高效率,减少创建和销毁线程带来时间和空间上的浪费,出现了线程池技术。这种技术是在开始就创建一定量的线程,批量处理一类任务,等待任务的到来。任务执行完毕后,线程又可以执行其他的任务。等不再需要线程的时候,就销毁。这样就省去了频繁创建和销毁线程的麻烦。

          各个web容器比如tomcat,Resion和Jetty都是有自己的线程池的,只要在配置文件里配置下,那么客户端调用的时候,容器会自动给分配线程池里面的线程,提高访问的速度。

二、配置tomcat线程池

       

打开%TOMCAT_HOME%/conf/server.xml:第一步,打开共享的线程池
             
默认前后是注释掉的,去掉就可以了。
 
  

name 这个是线程池的名字,必须唯一,我们在后面的配置里要用到这个东西

namePrefix(String) 线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如catalina-exec-1catalina-exec-2

maxThreads(int) 允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,反正只是限制而已,不占用资源

minSpareThreads(int) 最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源。

maxIdleTime(int) 超过最小活跃线程数量的线程,如果空闲时间超过这个设置后,会被关别。默认是1分钟。

threadPriority(int) 线程的等级。默认是Thread.NORM_PRIORITY

然后在 Connector里指定使用共享线程池

OK,tomcat线程池就算配置完了。

 

你可能感兴趣的:(服务端开发积累笔记)