Springboot tomcat 多线程 模型 web容器 模型 并发模型 Java
代码1
@ApiOperation("测线程")
@RequestMapping(value = "/test-thread")
public String testThread() {
System.out.println(Thread.currentThread().getName());
System.out.println(testX.getName());
return "ok";
}
每一个请求都对应了一个线程(刷新一次页面 就出现了一个不同的线程 当然 tomcat不会每次都新增 ,直接在线程池中取就OK)
为验证并发问题,建了一个TestX类
代码2
@Component
public class TestX {
String name = "test1";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
因为spring是单例,所以每个请求访问的都是同一个TestX的实例,看上面的代码1
使用jmeter 测试并发 就出现了并发的问题
1 是进入控制器 2是输出testX的name 3是testX中输出当前线程名称
下图红色的是正常流程,黄色的为并发问题,其他的没列出