自己做了测试多个请求时串行执行得,很多博客说得是每个请求创建一个线程去处理,不需要等待上一个请求结束啊,有没有大神解释一下这个问题啊
下面是请求url得代码
private Integer testVar=0;
@RequestMapping("/testObject")
@ResponseBody
public Integer test() throws InterruptedException {
testVar++;
System.out.println(testVar+"start");
Thread.sleep(2000l);
System.out.println(testVar+"end");
return testVar;
}
下面是控制台打印结果
12start
12end
13start
13end
14start
14end
--------------------------------------
追加:我用得tomcat7,但是改成8也没用
---------------------------------------
TheWaSaiBoy说的对,感谢,用不同得浏览器测试结果正确,
就是说明同一个浏览器多次访问相同接口请求是串行执行不同客户端访问时并行得
执行结果如下,
1start
2start
3start
3end
3end
3end
你要再不同的浏览器同时访问,再同一个浏览器访问测试不出来的。
你自己测的时候两次请求间隔时间是否大于了2000毫秒呢?
应该是浏览器的问题,同一个浏览器连续多次访问同一个url会造成多次访问的关系变为串行
你这种测试法有什么用,发来三个请求,然后他们进来就有先后顺序,你再让他们都睡眠同一时间再输出 不还是原本那顺序么
你要测就进来后第一个调用的延迟5秒,第二个调用的不延迟,这样就能看到效果了