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中输出当前线程名称
下图红色的是正常流程,黄色的为并发问题,其他的没列出

posted @ 2022-03-22 11:45  方东信  阅读(471)  评论(0编辑  收藏  举报