Junit在多线程测试时的坑

Junit单元测试主线程退出,子线程也会退出

java 复制代码
    @Test
    public void test() throws InterruptedException {
        Thread t1 = new Thread(() -> {
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println(Thread.currentThread().getName()+":finish");
        }, "t1");
        t1.start(); 
    }

可以看到什么都不会打印,如果给主线程也加上sleep,那就可以了

java 复制代码
    @Test
    public void test() throws InterruptedException {
        Thread t1 = new Thread(() -> {
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println(Thread.currentThread().getName()+":finish");
        }, "t1");
        t1.start();
        TimeUnit.SECONDS.sleep(6);
    }
相关推荐
焰火19992 分钟前
[Java][SpringBoot]集成Redis实现Session共享
java·redis
荣淘淘3 分钟前
互联网大厂Java求职面试全景实战解析(涵盖Spring Boot、微服务及云原生技术)
java·spring boot·redis·jwt·cloud native·microservices·interview
超龄超能程序猿17 分钟前
Spring AI Alibaba 与 Ollama对话历史的持久化
java·人工智能·spring
hrrrrb20 分钟前
【Spring Security】认证(二)
java·后端·spring
33255_40857_2805924 分钟前
告别密码爆破!手把手教你用注解和拦截器实现登录限流
java
舒克日记33 分钟前
基于springboot针对老年人的景区订票系统
java·spring boot·后端
西西学代码43 分钟前
Flutter---showCupertinoDialog
java·前端·flutter
多多*1 小时前
上传文件相关业务,采用策略模式+模版方法模式进行动态解耦
java·开发语言
晨非辰1 小时前
【面试高频数据结构(四)】--《从单链到双链的进阶,读懂“双向奔赴”的算法之美与效率权衡》
java·数据结构·c++·人工智能·算法·机器学习·面试