呜呜呜乌冬面 2023-05-15 08:38 采纳率: 100%
浏览 11
已结题

Java中在单元测试使用多线程失败

各位,我在学习多线程时候,使用jnit包下的单元测试,测试如下代码的时候,返回结果为什么不显示i的值啊

public class ThreadTest {
    @Test
    public void test1(){
        Sample sample = new Sample();
        sample.start();
    }
}

class Sample extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("子线程:" + i);
        }
    }
}

结果是这样的:

img

但是如果使用main方法调用的话结果就正确了,请问各位是为什么啊

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-05-15 08:46
    关注

    junit 开启子线程, 不能正确显示,那是因为junit单元测试方法所在的线程没有阻塞,运行完了就直接结束了,导致它启动的子线程也异常结束了
    看看这篇了解下https://blog.csdn.net/anthony_ju/article/details/113851557

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 虚拟机检测,可以是封装好的DLL,可付费
  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥15 开发一个类似百度网盘的软件,在主页 文件列表点击进入文件夹,在文件夹里面还有文件夹,代码该怎么写?
  • ¥30 使用matlab将观测点聚合成多条目标轨迹
  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据