Tomcat 默认支持的处理请求的并发数量
2016-03-07 13:34
513 查看
这里参阅了网络上一段著名的对Servlet线程安全性进行测试的代码(http://zwchen.iteye.com/blog/91088)。运行之后,我们可以看一下这个例子的输出:
sample.SimpleServlet@11e1bbf:Thread[http-8081-Processor23,5,main]
Counter = 60
Counter = 61
Counter = 62
Counter = 65
Counter = 68
Counter = 71
Counter = 74
Counter = 77
Counter = 80
Counter = 83
sample.SimpleServlet@11e1bbf:Thread[http-8081-Processor22,5,main]
Counter = 61
Counter = 63
Counter = 66
Counter = 69
Counter = 72
Counter = 75
Counter = 78
Counter = 81
Counter = 84
Counter = 87
sample.SimpleServlet@11e1bbf:Thread[http-8081-Processor24,5,main]
Counter = 61
Counter = 64
Counter = 67
Counter = 70
Counter = 73
Counter = 76
Counter = 79
Counter = 82
Counter = 85
Counter = 88
Tomcat 3.0, 默认的状态下,没有大量请求时,并发数好像是 50,
更大量的请求到来时,默认的并发数好像可以自动增加到 300,
但在这里,像这样如果命名一个 类变量 counter,肯定不是线程安全的,
package p.test.servlet.threadSecurity; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(asyncSupported = true, urlPatterns = { "/threadSafeTestServlet" }) public class ThreadSafeTestServlet extends HttpServlet { private static final long serialVersionUID = -5360278358684235455L; // 定义一个实例变量,并非一个线程安全的变量 private int counter = 0; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 输出当前Servlet的信息以及当前线程的信息 System.out.println(this + ":" + Thread.currentThread() + " Startttttttttttttttttttttt"); // 循环,并增加实例变量counter的值 for (int i = 0; i < 5; i++) { System.out.println(this + ":" + Thread.currentThread() + "Counter = " + counter); try { Thread.sleep(20000); counter++; } catch (InterruptedException exc) { } } System.out.println(this + ":" + Thread.currentThread() + " Enddddddddddddddddddddddddd"); // resp.getWriter().println( // this + ":" + Thread.currentThread() // + " Enddddddddddddddddddddddddd"); // resp.getWriter().println("Done"); // resp.getWriter().flush(); // resp.getWriter().close(); } }
sample.SimpleServlet@11e1bbf:Thread[http-8081-Processor23,5,main]
Counter = 60
Counter = 61
Counter = 62
Counter = 65
Counter = 68
Counter = 71
Counter = 74
Counter = 77
Counter = 80
Counter = 83
sample.SimpleServlet@11e1bbf:Thread[http-8081-Processor22,5,main]
Counter = 61
Counter = 63
Counter = 66
Counter = 69
Counter = 72
Counter = 75
Counter = 78
Counter = 81
Counter = 84
Counter = 87
sample.SimpleServlet@11e1bbf:Thread[http-8081-Processor24,5,main]
Counter = 61
Counter = 64
Counter = 67
Counter = 70
Counter = 73
Counter = 76
Counter = 79
Counter = 82
Counter = 85
Counter = 88
Tomcat 3.0, 默认的状态下,没有大量请求时,并发数好像是 50,
更大量的请求到来时,默认的并发数好像可以自动增加到 300,
但在这里,像这样如果命名一个 类变量 counter,肯定不是线程安全的,
相关文章推荐
- tomcat错误之:Exception loading sessions from persistent storage java.io.EOFException
- Tomcat内存设置详解
- 重启J2EE学习1:tomcat
- 怎样在win7中 安装Tomcat7.0
- Tomcat多次部署
- tomcat错误之:Exception loading sessions from persistent storage java.io.EOFException
- tomcat中的目录映射
- tomcat bin目录下的startup.bat一闪而过的问题
- 解决tomcat占用8080端口问题
- Apache和Tomcat服务器间的区别、联系、整合详细介绍
- tomcat配置及环境搭建
- tomcat相关知识
- MAC OS eclipse下配置tomcat
- Ubuntu 12.04下解决Tomcat自启动问题(
- Ngix+Tomcat配置集群负载均衡
- Linux下的Tomcat安装
- centos 下tomcat 自动启动
- Solr学习笔记-在Tomcat上部署执行Solr
- tomcat单个ip配置多个域名及配置用户角色查看服务器状态
- Linux下tomcat JVM内存 配置