做并发单元测试
有两点需要注意:
(1)当有一个线程抛出异常时,不会影响其他线程
(2)在单元测试中,主线程结束时,也会结束子线程,所以要用CountDownLatch类,调用await(),等待其他
子线程执行完毕。
@Test public void test(){ for(int i=0;i<threadCount;i++){ Thread thread=new Thread(new Runnable() { @Override public void run() { System.out.println("current thread is "+Thread.currentThread().getName()); //业务逻辑 ... countDownLatch.countDown();//当前线程调用此方法,计数器减1,注意此方法要写在run()中 } }); thread.start(); } try{ countDownLatch.await(); }catch (Exception e){ e.printStackTrace(); } }