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条有时候甚至没有,求解
因为Junit单元测试时,如果主线程执行结束则此单元测试也就结束了,这个时候子线程可能还没执行完就被杀死了。所以在你测试过程中输出有时候是5条有时候是6条有时候甚至没有是正常的。那么解决此问题的思路也就有了:
要么直接粗暴的让主线程执行sleep
使用CountDownLatch
你没有使用junit的Test类进行测试,请检查
数量怎么可能不是10呢你for的都是10,你好好试试看
Junit单元测试不支持多线程,可以写在main方法,也可以写在测试类里,但是需要让主线程sleep