架构之路之Tomcat

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_29857681/article/details/100689469
  1. tomcat支持多大的并发?怎么定?
    1. 是由server.xml中的connector标签的maxThreads属性决定的,默认是200
    2. 实际中可以根据服务器类型调整,本质是在线程数与线程切换之间找到性能平衡点
      1. 多用于计算 则线程数小一点,这样线程切换少
      2. 多用于io 数据库操作, 线程数大一点,这样可以处理的并发量会多一点
      3. 具体可以由少到多的增加,不断调试,找到适合自己系统和tomcat服务器可以接受的平衡点.
  2. tomcat 请求来时 线程创建策略
    1. 首先看是否配置线程池
    2. 如果没有 则默认有个线程栈
    3. 如果线程栈中还有线程,直接pop一个
    4. 如果没有则判断是否超过最大线程数,没有则创建线程
    5. 如果超过则判断最大线程数是否大于0,如果小于,则创建(相当于没有最大线程限制)
    6.         synchronized (workers) {
                  if (workers.size() > 0) {
                      curThreadsBusy++;
                      return workers.pop();
                  }
                  if ((maxThreads > 0) && (curThreads < maxThreads)) {
                      curThreadsBusy++;
                      return (newWorkerThread());
                  } else {
                      if (maxThreads < 0) {
                          curThreadsBusy++;
                          return (newWorkerThread());
                      } else {
                          return (null);
                      }
                  }
              }
  3. https://blog.csdn.net/yfkscu/article/list/2?

猜你喜欢

转载自blog.csdn.net/qq_29857681/article/details/100689469