zoukankan      html  css  js  c++  java
  • tomcat线程池原理

    tomcat线程池有如下参数:

       maxThreads, 最大线程数,tomcat能创建来处理请求的最大线程数

       maxSpareTHreads, 最大空闲线程数,在最大空闲时间内活跃过,但现在处于空闲,若空闲时间大于最大空闲时   间,则回收,小于则继续存活,等待被调度。

       minSpareTHreads,最小空闲线程数,无论如何都会存活的最小线程数

       acceptCount, 最大等待队列数 ,请求并发大于tomcat线程池的处理能力,则被放入等待队列等待被处理。

       maxIdleTime, 最大空闲时间,超过这个空闲时间,且线程数大于最小空闲数的,都会被回收   

     tomcat原理如上图。Tomcat线程池在工作的时候,实际情况是:以上述线程池为例,一开始就创建最小空闲数的线程在池里,20个,当同一时间请求数量大于最小空闲数20,比如来了50个并发请求,那么线程池还需要创建30个线程来处理请求。这时候当请求都处理完了,持续来的请求低于50个的时候,那么当时间过了60秒,并发数还是没有达到50,那么从第50个线程开始,线程池将按照,空闲时间达到60s的,开始逐个回收,49个,48个,47个,如此回收。如果并发请求小于20个,那么线程池会回收至20个的时候,停止回收,这就是最小空闲数的作用,即使一个请求都没有,那么线程池也得保证随时都有20个。所谓空闲回收是指:一个线程在60s的时间内,一直处于等待。那么就可以判定该线程是空闲。如果这个空闲线程是在最小空闲数以上,则会被回收。当请求并发高于500最大空闲数的时候,线程池是会继续创建线程的,来满足特大突发性并发。当并发请求数降下之后,线程池中有空闲,那么,无论线程空闲时间是否达到60s,线程池都会进行回收至500。500以类的线程也会根据空闲时间是否大于60s来判断是否需要进行回收。
    ---------------------

  • 相关阅读:
    当今手机和互联网故事
    回忆手机和互联网故事
    FAQ2010-2019
    LTM在服务器负载均衡中的运行模式
    如何让集团型企业进行IT集中管控,实现分支零IT运维
    两个优化Oracle数据库性能的方法解析
    简单描述Oracle数据库性能优化的几个要点
    A10 Thunder CFW融合防火墙保护企业应用安全
    全球甄选Azure云解决方案,直击云上核心痛点
    微软物联网开创”万物互联“新时代
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/10470218.html
Copyright © 2011-2022 走看看