关于springmvc中的controller有无并发阻塞问题

本文探讨了Spring MVC中Controller是否会出现并发阻塞问题。通过测试发现,尽管Controller是单例模式,但并发请求不会导致阻塞,因为每个请求在不同的线程中执行。不过,如果在Controller中创建全局变量,就需要考虑并发控制,以避免数据混乱问题。
摘要由CSDN通过智能技术生成

关于controller的一点疑问

一般情况下,spring中的controller是单例模式的,也就是说所有的访问都会调用同一个controller的方法,自然而然的就会想到并发的问题,当某一个请求调用controller方法尚未退出时,是否会造成后续请求的阻塞。
写个小demo测试一下

	@RequestMapping("/dotest01/{id}")
	@ResponseBody
	public String dotest01(@PathVariable("id") int id) {
		long start =System.currentTimeMillis();
		String str;
		if(id==1) {
			try {
				Thread.sleep(4000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			log.info("1号"+Thread.currentThread().getName());
			log.info(this.toString());
			str="1号结果!";
		}else {
			log.info("2号"+Thread.currentThread().getName());
			log.info(this.toString());
			str="2号结果";
		}
		long time =System.currentTimeMillis()-start;
		return str+time;
	}

进行测试先发送访问dotest01/1,后访问dotest01/2࿰

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值