做并发单元测试

有两点需要注意:
(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();
    }
}
原文地址:https://www.cnblogs.com/BonnieWss/p/11314120.html