为了账号安全,请及时绑定邮箱和手机立即绑定

循环创建10个线程并输出,但线程有时是5个有时是6个,数量好像不是固定的10个

for(int i=0; i<10; i++){
    new Thread(new Runnable() {
        public void run() {
            Bean bean = context.getBean("testBean", Bean.class);
            System.out.println("bean="+bean);
        }
    }).start();
}

输出有时候是5条有时候是6条有时候甚至没有,求解

正在回答

4 回答

因为Junit单元测试时,如果主线程执行结束则此单元测试也就结束了,这个时候子线程可能还没执行完就被杀死了。所以在你测试过程中输出有时候是5条有时候是6条有时候甚至没有是正常的。那么解决此问题的思路也就有了:

  1. 要么直接粗暴的让主线程执行sleep

  2. 使用CountDownLatch

0 回复 有任何疑惑可以回复我~

你没有使用junit的Test类进行测试,请检查

0 回复 有任何疑惑可以回复我~

数量怎么可能不是10呢你for的都是10,你好好试试看

0 回复 有任何疑惑可以回复我~

Junit单元测试不支持多线程,可以写在main方法,也可以写在测试类里,但是需要让主线程sleep

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

循环创建10个线程并输出,但线程有时是5个有时是6个,数量好像不是固定的10个

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信