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);
    }
相关推荐
堕落年代5 分钟前
Ollama CPU 推理大提示词优化实测报告(细致化数据版)
java·后端·spring
KobeSacre30 分钟前
ForkJoinPool 源码
java
wear工程师1 小时前
Kafka 消费者心跳正常,为什么还会被踢出组?拆清 max.poll.interval.ms
java·kafka
SemiTris1 小时前
为什么 C/C++ 不走 Java 式的虚拟机跨平台路线?
java·程序员
weixin_440784111 小时前
【IntentSeivice实现原理】
android·java·开发语言·intentservice
IanSkunk1 小时前
企业AI Agent生产化落地:从技术架构到实施服务的全链路分析
java·人工智能·架构
岁岁养乐多2 小时前
Java 序列化相关问题
java·开发语言
叶总没有会2 小时前
5.1知识库概念进阶
java·人工智能·spring·阿里云·ai·原型模式
小短腿乄2 小时前
java实现pdf加水印+签名
java·开发语言·pdf
云烟成雨TD3 小时前
Micrometer 系列【29】源码分析:MeterRegistry 实例化流程
java·云原生·micrometer