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);
    }
相关推荐
koping_wu几秒前
【leetcode】排序数组:快速排序、堆排序、归并排序
java·算法·leetcode
咘噜biu5 分钟前
Java SpringBoot后端Filter包装请求(新增/覆盖请求头)
java·spring boot·filter·requestwrapper
历程里程碑6 分钟前
LeetCode 283:原地移动零的优雅解法
java·c语言·开发语言·数据结构·c++·算法·leetcode
程序猿零零漆7 分钟前
Spring之旅 - 记录学习 Spring 框架的过程和经验(五)Spring的后处理器BeanFactoryPostProcessor
java·学习·spring
虾说羊7 分钟前
java中的反射详解
java·开发语言
星火飞码iFlyCode9 分钟前
iFlyCode实践规范驱动开发(SDD):招考平台报名相片质量抽检功能开发实战
java·前端·python·算法·ai编程·科大讯飞
廋到被风吹走11 分钟前
【Spring】HandlerInterceptor解析
java·后端·spring
毛小茛13 分钟前
若依框架搭建基础知识
java
开开心心_Every15 分钟前
定时管理进程:防止沉迷电脑的软件推荐
xml·java·运维·服务器·网络·数据库·excel
程序猿零零漆15 分钟前
Spring之旅 - 记录学习 Spring 框架的过程和经验(四)Spring的get方法、Spring配置非定义的Bean、Bean实例化的基本流程
java·学习·spring