Servlet多线程测试

  1. Servlet在运行时只有一个实例,但是service方法是多线程的
  2. 通过重写doGet方法进行测试
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println(new Date()+":处理get请求------");
    		System.out.println("实例地址为:"+this+";hashCode:"+this.hashCode());
    		System.out.println("当前线程:"+Thread.currentThread());
    		
    	}
  3. 测试输出结果
    Sun Jan 14 19:31:28 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-4,5,main]
    Sun Jan 14 19:31:29 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-5,5,main]
    Sun Jan 14 19:31:29 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-6,5,main]
    Sun Jan 14 19:31:29 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-7,5,main]
    Sun Jan 14 19:31:30 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-9,5,main]
    Sun Jan 14 19:31:30 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-8,5,main]
    Sun Jan 14 19:31:30 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-10,5,main]
    Sun Jan 14 19:31:30 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-1,5,main]
    Sun Jan 14 19:31:30 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-2,5,main]
    Sun Jan 14 19:31:31 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-3,5,main]
    Sun Jan 14 19:31:31 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-4,5,main]
    Sun Jan 14 19:31:31 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-5,5,main]
    Sun Jan 14 19:31:31 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-6,5,main]
    Sun Jan 14 19:31:31 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-7,5,main]
    Sun Jan 14 19:31:31 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-9,5,main]
    Sun Jan 14 19:31:32 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-8,5,main]
    Sun Jan 14 19:31:32 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-10,5,main]
    Sun Jan 14 19:31:32 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-1,5,main]
    Sun Jan 14 19:31:32 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-2,5,main]
    Sun Jan 14 19:31:32 CST 2018:处理get请求------
    实例地址为:com.oracle.first.login@31f35411;hashCode:838030353
    当前线程:Thread[http-nio-8080-exec-3,5,main]
  4. 由以上测试可知,Servlet实例只有一个,service方法是多线程的,当前线程被占用时,容器会调用新的线程进行处理请求
  5. tomcat8采用循环分配线程的算法,进行调用service方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值